我正在尝试我的第一部分React.js并且很早就被我难倒...我有下面的代码,它会将搜索表单转换为<div id="search"></div>.但是在搜索框中输入什么也不做.
据推测,通过道具和状态上下都会丢失一些东西,这似乎是一个常见的问题.但我很难过 - 我看不出有什么遗漏.
var SearchFacet = React.createClass({
  handleChange: function() {
    this.props.onUserInput(
      this.refs.searchStringInput.value
    )
  },
  render: function() {
    return (
      <div>
        Search for:
        <input
          type="text"
          value={this.props.searchString}
          ref="searchStringInput"
          onchange={this.handleChange} />
      </div>
    );
  }
});
var SearchTool = React.createClass({
  render: function() {
    return (
      <form>
        <SearchFacet 
          searchString={this.props.searchString}
          onUserInput={this.props.onUserInput}
         />
        <button>Search</button>
      </form>
    );
  }
});
var Searcher = React.createClass({
  getInitialState: function() {
    return {
      searchString: ''
    }
  },
  handleUserInput: function(searchString) {
    this.setState({
      searchString: searchString
    })
  },
  render: function() {
    return …我有以下代码:
    constructor(props) {
        super(props);
        this.state = {
            search: "",
            value: "",
            username:'',
            email:'',
            password: '',
        };
        this.onChange = this.onChange.bind(this);
        this.onSubmit = this.onSubmit.bind(this);
    }
...
...
    onChange(e) {
        this.setState(
            {[e.target.name]: e.target.value})
    }
...
...
<input type="password" placeholder="Password"
onChange={e => this.onChange(e)}
value={ this.state.password }
                                                />
但是我无法在密码字段中输入。如果删除该value={ this.state.password }零件,则可以在该字段中键入内容,但是当更改此字段时,状态似乎没有更新。
问题是什么?