React onChange方法在react_on_rails中不起作用

时间:2017-08-24 09:24:04

标签: ruby-on-rails reactjs react-on-rails

我正在尝试基于react_on_rails gem创建一个示例应用。在我的反应代码中,反应内置函数如final Properties properties = new Properties(); properties.load( this.getClass().getResourceAsStream( "/csv-mapping.properties" ) ); onChange无效。

我的onSubmit组件看起来像这样。

HelloWorldWidget

此外,如果我在... constructor(props, context) { super(props, context); _.bindAll(this, 'handleChange'); } handleChange(e) { const name = e.target.value; console.log(name); //this.props.updateName(name); } render() { const { name } = this.props; return ( <div className="container"> <h3> Hello, {name}! </h3> <input className="form-control input-sm col-sm-4" type="text" onChange={this.handleChange}/> </div> ); } 文件中禁用了我的组件的服务器端预渲染,则该组件不会在UI上呈现。

views/hello_world/index.html.erb

Github Repo:react-on-rails-sample-app

2 个答案:

答案 0 :(得分:1)

我不确定_.bindAll方法的来源,但绑定处理程序的正统方法是使用以下语法:
this.handleChange = this.handleChange.bind(this);

如果您使用箭头功能,则无需将其绑定到class;

handleChange = (e) => {
  const name = e.target.value;
  console.log(name);
  //this.props.updateName(name);
}

答案 1 :(得分:0)

尝试使用这样的箭头函数:

onChange={(e) => this.handleChange(e)}