метода 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