Javascript 通过child中的按钮更新父级中状态的正确方法
我试图绕过处理程序函数更新父级的状态到子级,但我得到一个错误:Javascript 通过child中的按钮更新父级中状态的正确方法,javascript,reactjs,Javascript,Reactjs,我试图绕过处理程序函数更新父级的状态到子级,但我得到一个错误: class Parent(){ contractor(props){ super(props); this.state = { answer: "" } }; hanadleAnswer = _answer => { this.setState({ answer: _answer }); } render () { return ( &l
class Parent(){
contractor(props){
super(props);
this.state = {
answer: ""
}
};
hanadleAnswer = _answer => {
this.setState({ answer: _answer });
}
render () {
return (
<Switch>
<Route path="questions" component={<Child handler={_answer => this.handleAnswer(_answer)}/>}
</Switch>
)
}
}
如果此方法不起作用,如何根据来自子bu按钮的值更新父bu按钮的状态?这样使用-
function Child({ handler }){
...
<Button onClick={()=>handler({option_1})}></Button>
<Button onClick={()=>handler({option_2})}></Button>
...
}
更好理解的参考资料。引用该页的话:
将参数传递给事件处理程序
在循环中,通常希望向事件处理程序传递额外的参数。例如,如果id是行id,则以下任一项都可以使用:
<button onClick={(e) => this.deleteRow(id, e)}>Delete Row</button>
<button onClick={this.deleteRow.bind(this, id)}>Delete Row</button>
像这样使用-
function Child({ handler }){
...
<Button onClick={()=>handler({option_1})}></Button>
<Button onClick={()=>handler({option_2})}></Button>
...
}
更好理解的参考资料。引用该页的话:
将参数传递给事件处理程序
在循环中,通常希望向事件处理程序传递额外的参数。例如,如果id是行id,则以下任一项都可以使用:
<button onClick={(e) => this.deleteRow(id, e)}>Delete Row</button>
<button onClick={this.deleteRow.bind(this, id)}>Delete Row</button>
非常感谢:它起作用了!你能解释一下为什么会这样吗?我做错了什么?@White159你可以查看发布的概念和参考。。。如果这个答案对你有帮助,请接受/投票。非常感谢:它起作用了!你能解释一下为什么会这样吗?我做错了什么?@White159你可以查看发布的概念和参考。。。如果答案对你有帮助,请接受/投票支持。