【发布时间】:2018-02-13 20:25:57
【问题描述】:
Total React noob 在这里。我的 React 应用程序中有两个兄弟组件。当在Component B 中执行某个方法时,我想在Component A 中显示加载消息
我熟悉在 React 中将状态从父级传递给子级,但是如何通知兄弟姐妹显示它的加载器?
这是我目前所拥有的
export default class ComponentA extends Component {
constructor(props) {
super(props);
this.state = {};
}
render(){
return(
{/* Loader */}
{ this.state.loading === true &&
<div className="loader"></div>
}
)
}
}
export default class ComponentB extends Component {
// Constructor, bindings and stuff...
getData(){
// Update Component A's "loading" state here.
// Once the data is fetched, set "loading" to false
}
render(){
return(
<div>
<button onClick="this.getData"></button>
<table>
<tbody>
{/* ... */}
</tbody>
</table>
</div>
)
}
}
将两个组件设置为从父组件继承状态似乎并不可取,因为我将有许多具有嵌套组件的兄弟姐妹,我还想触发这个加载器
感谢任何输入!
【问题讨论】:
-
2 个选项,创建一个父组件(又名容器组件),在 2 个兄弟组件之间传递消息。或者,将状态移动到 redux 存储并将两个兄弟组件连接到 redux 存储
-
要么使用某种形式的全局状态,要么让组件从父级继承。
-
@Varinder 我想我会深入研究 redux 来控制它。家长 2 孩子可能会有点乱
标签: javascript reactjs jsx