метода getElementById в React
получение этой ошибки на данный момент:
Uncaught TypeError: Cannot read property 'value' of null
Я называю это в мои функции render ниже:
<input type="submit" className="nameInput" id="name" value="cp-dev1" onClick={this.writeData}/>
Я также попытался вызвать его здесь
componentWillMount: function(){
var name = document.getElementById('name').value;
},
как я могу получить идентификатор входного текстового поля и прочитать это значение и убедиться, что оно не равно null?
Я думаю, что DOM загружается после того, как я пытаюсь прочитать элемент, поэтому он равен null
1 ответов
вы должны иметь свою функцию в componentDidMount
жизненный цикл, так как это функция, которая вызывается при загрузке DOM.
использовать refs
для доступа к элементу DOM
<input type="submit" className="nameInput" id="name" value="cp-dev1" onClick={this.writeData} ref = "cpDev1"/>
componentDidMount: function(){
var name = React.findDOMNode(this.refs.cpDev1).value;
this.someOtherFunction(name);
}
посмотреть этот ответ для получения дополнительной информации о как получить доступ к элементу dom в React