我在index.js中有以下结构:
<MyAppBar // + properties/>
 <Route path={path} component={Login}/>MyAppBar.js
 class MyAppBar extends React.Component {
state = {
  auth: false,
  anchorElement: null
};
handleLogin(){
  this.setState({auth:true});
}
//another code
//end component
export default withStyles(styles)(MyAppBar)我希望在Login组件操作处理程序(即handleLogin)中将MyAppBar状态auth标记更新为true,但我不知道如何实现。
我尝试过在登录页面导入MyAppBar (所有组件),但是它说
MyAppBar.handleLogin(); 不是一个函数..。谢谢!
谢谢!
发布于 2018-10-17 11:47:48
我不认为对于这个简单的范例,您需要经历设置redux的所有麻烦(我喜欢Redux,但有时我们不需要使用它)
下面是如何使用新的context实现它。
它简单得多,使用起来也很好。检查一下,这里,如果不清楚,请告诉我。
发布于 2018-10-17 11:19:36
登录应该是MyAppBar的子组件。然后,您可以将函数handleLogin作为登录的道具。
发布于 2018-10-17 11:24:23
你应该使用REDUX。
主要是因为它允许您拥有任何组件都可以读取或同步的状态。
我很少使用react的状态/setState。
在大多数情况下,redux状态很好地改变/观察。
https://stackoverflow.com/questions/52853420
复制相似问题