我有一个带有提交按钮的表单。该表单调用一个函数 onclick 将某事物的状态从 false 设置为 true。然后我想将此状态传递回父级,以便如果它是 true 则呈现 componentA,但如果它是 false 则呈现 componentB。
我会怎么做呢?我知道我需要使用 state 或 props 但不知道该怎么做。这也与单向流反应原则相矛盾吗?
组件A代码:
<form onSubmit={this.handleClick}>
handleClick(event) {
this.setState({ decisionPage: true });
event.preventDefault();
};
控制显示内容的父组件:
return (
<div>
{this.props.decisionPage ?
<div>
<LoginPage />
</div>
:
<div>
<Decision showThanks={this.props.showThanks}/>
</div>
}
</div>
)
原文由 The worm 发布,翻译遵循 CC BY-SA 4.0 许可协议
将
handleClick
移动到父组件并将其作为道具传递给子组件。现在在子组件中:
这种提交表单的方式将直接更新父组件中的状态。这假设您不需要访问子组件中的更新状态值。如果这样做,那么您可以将状态值作为道具从父级传回给子级。保持单向数据流。