Я пытаюсь реализовать очень простой вариант использования, функцию пользовательского интерфейса, где:
- В нем есть ярлык с некоторым контентом
- Если щелкнуть, текстовый ввод заменяет его содержимым метки
- Пользователь может редактировать содержимое
- При нажатии кнопки ввод скрывается и метка возвращается с обновленным контентом
Я мог бы, наконец, все правильно (на самом деле с бэкэндом MongoBD, редуксом и т.д.), И единственное, что я никогда не мог сделать (полный день в поиске по Google и чтение подобных сообщений) был следующим:
Когда появится мой ввод текста, я не могу перенести на него фокус! Сначала я устал так:
<div className={((this.state.toggleWordEdit) ? '' : 'hidden')}>
<input id={this.props.word._id} className="form-control"
ref="updateTheWord"
defaultValue={this.state.word}
onChange={this.handleChange}
onKeyPress={this.handleSubmit}
autoFocus={this.state.toggleWordEdit}/></div>
<div className={((this.state.toggleWordEdit) ? 'hidden' : '')}>
<h3 onClick={this.updateWord}>
{this.state.word}</h3>
</div>
но autoFocus уверен, что не работал (я "догадываюсь", потому что форма визуализируется, но в скрытом состоянии, делая autoFocus бесполезным).
Затем я попытался в моем this.updateWor, много предложений, которые я нашел в google и SOF:
this.refs.updateTheWord.focus();
которые вместе с подобными предложениями все не сработали. Также я попытался обмануть Реакт, чтобы убедиться, что я могу что-то сделать! Я использовал реальный DOM:
const x = document.getElementById(this.props.word._id);
x.focus();
и это тоже не сработало. Одна вещь, которую я даже не мог понять, чтобы выразить это, - это предложение вроде этого: имея ref как метод (я "догадываюсь"), я даже не пробовал его, потому что у меня есть кратность этих компонентов, и мне нужно ref для дальнейшего получения значения из, за компонент, и я не мог себе представить, если мой ref не назван, как я мог бы получить значение!
Так что, пожалуйста, дайте мне понять, помогая понять, что если я не использую форму (потому что мне нужен один блок ввода, заменяющий метку), как бы я мог сосредоточиться, когда класс CSS (Bootstrap) скрытый "пожалуйста?