React 双向组件通信
React Bidirectional component communication
我正在做一个 React 应用程序,我的想法是让一个组件称它为组件 A,return 函数具有:
<div>
<div>
<ExtraComponent 1/>
<ExtraComponent 2/>
</div>
<div>
<B />
</div>
</div>
组件 B 有一个名为 C 的子组件,它会在单击时切换(组件 C 仅在 showProperty 为 true 时才会呈现)
B = React.createClass({
getInitialState: function() {
return {
showProperty: false
}
},
handlerClick(e) {
this.setState({
showProperty: !this.state.showProperty
});
},
render() {
return (
<div onClick= { this.handlerClick }>
<span>B</span>
<C showProperty={this.state.showProperty} />
</div>
);
}
});
我想要做的是,当组件 B 切换他的子组件 (C) 时,我希望他与组件 A(它的父组件)进行通信,这样它就可以切换两个 ExtraComponents。
TLDR : 我需要一种方法让组件在反应中同时与其子和父亲通信。
提前致谢。
你好,约翰。
您可以将回调从父组件传递到子组件以更新父组件的状态。然后你可以将父级的状态传递给其他额外的组件。
var A = React.createClass({
getInitialState() {
toggleState: 'false'
},
render() {
return (
<div>
<div>
<ExtraComponent1 toggleState={this.state.toggleState}/>
<ExtraComponent2 toggleState={this.state.toggleState}/>
</div>
<div>
<B onToggle={this.onToggle.bind(this)}/>
</div>
</div>
);
},
onToggle(toggleState) {
this.setState({ toggleState: toggleState });
}
});
var B = React.createClass({
getInitialState: function() {
return {
showProperty: false
}
},
handlerClick(e) {
this.setState({
showProperty: !this.state.showProperty
});
this.props.onToggle(this.state.showProperty);
},
render() {
return (
<div onClick= { this.handlerClick }>
<span>B</span>
<C showProperty={this.state.showProperty} />
</div>
);
}
});
我正在做一个 React 应用程序,我的想法是让一个组件称它为组件 A,return 函数具有:
<div>
<div>
<ExtraComponent 1/>
<ExtraComponent 2/>
</div>
<div>
<B />
</div>
</div>
组件 B 有一个名为 C 的子组件,它会在单击时切换(组件 C 仅在 showProperty 为 true 时才会呈现)
B = React.createClass({
getInitialState: function() {
return {
showProperty: false
}
},
handlerClick(e) {
this.setState({
showProperty: !this.state.showProperty
});
},
render() {
return (
<div onClick= { this.handlerClick }>
<span>B</span>
<C showProperty={this.state.showProperty} />
</div>
);
}
});
我想要做的是,当组件 B 切换他的子组件 (C) 时,我希望他与组件 A(它的父组件)进行通信,这样它就可以切换两个 ExtraComponents。
TLDR : 我需要一种方法让组件在反应中同时与其子和父亲通信。
提前致谢。
你好,约翰。
您可以将回调从父组件传递到子组件以更新父组件的状态。然后你可以将父级的状态传递给其他额外的组件。
var A = React.createClass({
getInitialState() {
toggleState: 'false'
},
render() {
return (
<div>
<div>
<ExtraComponent1 toggleState={this.state.toggleState}/>
<ExtraComponent2 toggleState={this.state.toggleState}/>
</div>
<div>
<B onToggle={this.onToggle.bind(this)}/>
</div>
</div>
);
},
onToggle(toggleState) {
this.setState({ toggleState: toggleState });
}
});
var B = React.createClass({
getInitialState: function() {
return {
showProperty: false
}
},
handlerClick(e) {
this.setState({
showProperty: !this.state.showProperty
});
this.props.onToggle(this.state.showProperty);
},
render() {
return (
<div onClick= { this.handlerClick }>
<span>B</span>
<C showProperty={this.state.showProperty} />
</div>
);
}
});