【发布时间】:2015-07-08 16:23:22
【问题描述】:
目前我在 .erb 文件中渲染我的组件,如下所示:
<%= react_component('Counter', number: @counter) %>
这个组件有一个使用promised-xhr的函数:
push: function(operation) {
if(operation) {
new_number = this.state.number +1;
} else {
new_number = this.state.number -1;
}
// This call works.
// this.setState({number: new_number})
XHR.post("/update", {
data: {
count: new_number
}
}).then(function(response) {
// XHR.post is successful, so I can log the response.
console.log(response.body.number);
// But setState does not work because of 'this'
this.setState({number: reponse.body.number})
})
}
this.setState({number: response.body.number)} 不起作用,因为 this 不再是组件。我打算使用React.findDOMNode(this.refs.myComponent) 来查找我的组件并触发新状态。
但是,我不知道如何使用 react_component 将 ref 分配给我的 Counter 组件。
【问题讨论】:
-
你试过
.bind(this)吗?
标签: javascript ruby-on-rails reactjs react-rails