Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过child中的按钮更新父级中状态的正确方法_Javascript_Reactjs - Fatal编程技术网

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你可以查看发布的概念和参考。。。如果答案对你有帮助,请接受/投票支持。