我正在尝试基于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
答案 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)}