如果我正确理解您的问题,您正在尝试更新在状态更改时要显示的组件(例如,用户创建帐户),并且该状态由子组件更改。这是一个显示子 -> 父通信的基本示例。
在这种情况下,该RegisterAccount
组件是根组件。如果它是另一个组件的子组件,也需要知道hasAccount
此示例中使用的状态,那么状态可能会更好地存储在链的更高位置(并作为道具向下传递)。
这个例子的jsfiddle
/** @jsx React.DOM */
var AddAccount = React.createClass({
handleRegistration: function() {
this.props.updateAccount(true);
},
render: function() {
return <a onClick={this.handleRegistration}>Create my account</a>;
}
});
var AccountAdded = React.createClass({
render: function() {
return <span>Account exists now</span>;
}
});
var RegisterAccount = React.createClass({
getInitialState: function() {
return {
hasAccount: false
};
},
updateAccountStatus: function(status) {
this.setState({
hasAccount: status
});
},
render: function() {
return (
<div>
{this.state.hasAccount ? <AccountAdded /> : <AddAccount updateAccount={this.updateAccountStatus} />}
</div>
);
}
});
React.renderComponent(<RegisterAccount />, document.body);