javascript - 在 react 中获取输入值失败?

标签 javascript reactjs ecmascript-6

尝试在用户点击搜索但失败时获取输入的值。

var Login = React.createClass({
  getInitialState: function () {
    return {name: ''};
  },
  handleSearch(){
    alert(this.state.name); // doesn't work?
  },
  handleChange(e){
    this.setState({name: e.target.value});
  },
  render() {
    return <div>
      <input type="text" placeholder="name" onChange="{this.handleChange}" value=""/><button onClick={this.handleSearch}>Search</button>
    </div>;
  }
})

有没有更直接的获取输入值的方法?

最佳答案

主要问题是您的 onChange 有引号:

onChange="{this.handleChange}"

它不应该有它们,这是将它设置为一个字符串 值。只是:

onChange={this.handleChange}

(就像您在按钮上使用 onClick 所做的那样)。

您还需要将 value 设置为 this.state.name:

var Login = React.createClass({
  getInitialState: function () {
    return {name: ''};
  },
  handleSearch(){
    console.log("name is", this.state.name);
  },
  handleChange(e){
    this.setState({name: e.target.value});
  },
  render() {
    return <div>
      <input type="text" placeholder="name" onChange={this.handleChange} value={this.state.name} /><button onClick={this.handleSearch}>Search</button>
    </div>;
  }
});

ReactDOM.render(
  <Login />,
  document.getElementById("react")
);
<div id="react"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

关于javascript - 在 react 中获取输入值失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41239000/

相关文章:

reactjs - 如何在嵌套查询的解析器函数中传递根参数?

javascript - 我如何解构一个包含其他对象的javascript对象

angular - 将子对象属性名称转换为字符串数组的智能方法?

javascript - react native : Disabling scene transitions in NavigationExperimental

javascript - 无法以编程方式检查 Kendo 网格的多选复选框过滤器

javascript - AngularJs - 在 Controller 中的 $http 调用中设置 'this' 对象?

javascript - 我在 Postman 中发送 'name',ValidatorExpress 返回 'name' 尚未提供

javascript - 如何更改 react-google-maps 中 GroundOverlay 的不透明度?

javascript - 在 ReactJS 中渲染一对随机选择的对象(某些属性不匹配)作为扑克牌

javascript - 对象.defineProperty : setters for dom elements properties