React不在提交处理程序中查找<input />值

时间:2015-10-08 15:35:46

标签: javascript forms reactjs html-form reactive-programming

这是我的React类:

var React = require('bower.js').React;
var paper = require('bower.js').paper;

var NotePanel = React.createClass({
  getInitialState: function() {
    return {
      noteToAdd: ""
    };
  },
  setNoteToAdd: function(event) {
    event.preventDefault();
    var note = this.refs.noteToAdd.value;
    console.log(this.refs.noteToAdd.value);
    this.setState({
        noteToAdd: note
    });
  },
  render: function() {
    return (
      <div>
        <form onSubmit={this.setNoteToAdd}>
          <input ref="noteToAdd" type="text" />
          <input type="submit" value="Add Note" />
        </form>
      </div>
    );
  }
});

module.exports = NotePanel;

紧跟tutorial16.js here中的代码(大于页面的一半)。

然而,行

console.log(this.refs.noteToAdd.value);

将undefined打印到控制台。我不确定我错过了什么。 ref似乎设置正确。渲染代码与教程非常相似。但是在点击处理功能中,我无法像教程中那样访问value input的{​​{1}}。这是为什么?

2 个答案:

答案 0 :(得分:6)

v0.12.0 中使用this.refs.noteToAdd.getDOMNode().value

v0.13.0 中使用React.findDOMNode(this.refs.noteToAdd).value

v0.14.0 中使用this.refs.noteTOAdd.value

答案 1 :(得分:1)

尝试;

this.refs.noteToAdd.getDOMNode().value