如何从另一个组件更改组件的状态

时间:2019-03-14 17:27:16

标签: reactjs

我有两个反应成分:Questionlose。 这是lose的状态-this.state = { display: none } 我在Question中有一个按钮,我想创建一个功能,该功能将在单击时激活并更改lose的状态。我该怎么办?

1 个答案:

答案 0 :(得分:2)

假设lost是父组件,则应声明一个事件处理程序,该事件处理程序以display的状态控制lost属性。

例如,您在lost中写道:

changeDisplayToBlock = () => {
  this.setState({display: 'block'})
}

您应该将此处理程序作为道具传递给组件Question中的按钮。这意味着Question必须是lost的子代。

如果您的意思与Question是父级的情况相反。然后,您需要在组件display中拥有changeDisplayToBlock状态和Question事件处理程序。

我在这里使用的概念在React docs Lifting State Up中得到了很好的解释:)