Reactjs 将数据回发到api,而不强制渲染组件执行所有操作
我有一个react组件,用于上下投票,我正试图使用它来发回数据。例如,“向上投票”按钮、“向下投票”按钮将内部状态更改为“记录向上投票”或“向下投票” 现在是将数据更改发布回api的时候了。该组件基本上是一个渲染组件:Reactjs 将数据回发到api,而不强制渲染组件执行所有操作,reactjs,Reactjs,我有一个react组件,用于上下投票,我正试图使用它来发回数据。例如,“向上投票”按钮、“向下投票”按钮将内部状态更改为“记录向上投票”或“向下投票” 现在是将数据更改发布回api的时候了。该组件基本上是一个渲染组件: <Feedbackify up={44} down={23} /> 所以你给它提供投票的当前状态,它只是呈现它们,当你投票向上或向下时,它会修改它自己的内部状态。 我可以在组件内部发布或放入api,但我不希望这样。通过某种方式从外部发布到组件的最惯用方法是什么
<Feedbackify up={44} down={23} />
所以你给它提供投票的当前状态,它只是呈现它们,当你投票向上或向下时,它会修改它自己的内部状态。
我可以在组件内部发布或放入api,但我不希望这样。通过某种方式从外部发布到组件的最惯用方法是什么
<Feedbackify up={44} down={23} onChange={someOnChange}/>
或者react中是否有更清洁的替代方法?通常的方法是。因此父组件具有向上和向下投票的状态,只传递给
Feedbackify
投票值和someOnChange
(就像您所做的那样)。在每次投票更改时(在someOnChange
调用中),父级的状态都会更改,更新后的投票作为道具传递给Feedbackify
。此外,家长还负责向api发送数据
范例
class Parent extends React.Component {
constructor (p) {
super (p);
this.state = {
up: 0,
down: 0
}
}
someOnChange (event) {
let { up, down } = this.state;
// Assuming value will be positive for upvote and negative for downvote
if (event.target.value > 0)
up += event.target.value;
else
down += event.target.value;
doAsyncPost (up, down); // Post to server API
this.setState ({ up, down });
}
render () {
return <Feedbackify up={this.state.up} down={this.state.down} onChange={this.someOnChange.bind(this)}/>
}
}
类父级扩展React.Component{
建造师(p){
超级(p);
此.state={
上升:0,,
下跌:0
}
}
someOnChange(事件){
let{up,down}=这个状态;
//假设向上投票的值为正,向下投票的值为负
如果(event.target.value>0)
up+=事件.target.value;
其他的
down+=event.target.value;
doAsyncPost(向上、向下);//发布到服务器API
this.setState({up,down});
}
渲染(){
返回
}
}
对于所有部件,您可以考虑集中管理状态。