我想用每次点击div时从控制器生成的随机数更新值。由于该值是从Rails控制器静态下来的,这是否意味着我必须向路由提交ajax请求?
我知道通过使用一些JavaScript代码设置状态可以达到相同的效果,但我想特别知道是否可以从控制器获取此值。
请帮我填写handleClick
功能。
react-rails gem用于在视图中呈现组件。
控制器
class PostsController < ApplicationController
def index
@num = (1..100).to_a.sample
end
end
查看
<%= react_component("Num", { value: @num }) %>
组件
var Num = React.createClass({
getInitialState: function() {
return {
value: this.props.value
};
},
handleClick: function() {
},
render: function() {
return (
<div className="num" onClick={this.handleClick}>
{ this.state.value }
</div>
);
}
});
答案 0 :(得分:1)
简短回答:是的,您必须执行Ajax请求。
更实际地,如果您知道预期结果,则可以在等待Rails服务器响应时更新状态。然后在Ajax调用完成后。使用预设值校准返回值。如果它们相同,React的虚拟dom将足够聪明,不会更新UI。