当前位置: 首页 > 知识库问答 >
问题:

如何通过异步函数设置react父组件状态,然后将此状态作为道具传递给子组件?

周马鲁
2023-03-14

所以我想通过firebase函数设置访问,然后把这个访问道具作为道具传递给tabs组件,但是tabs组件的初始状态为null,firebase auth funtion在此之后就解决了。

class Admin extends React.Component {
  state = {
    access: null,
  };
  componentDidMount() {
    this.unListen = firebase.auth().onAuthStateChanged(user => {
      if (user) {
        this.setState(() => ({ access: true }));

      }
    });
  }

  componentWillUnmount() {
    this.unListen();
  }

render(){
return <Tab access={this.state.access}/>
  }
}

共有1个答案

赵健柏
2023-03-14

您可以进行条件呈现,并且在获得访问权限之前不呈现选项卡:

return this.state.access 
    ? <Tab access={this.state.access}/> 
    : <div>Not authorized</div>
 类似资料:
  • 我试图在我的应用程序中分解组件,但在理解如何将状态和道具从父组件传递给子组件时遇到了一些问题。对于上下文,“我的子组件”是一个表,它在行中呈现较小的组件。 现在我有一个名为BookComponents的常量,它需要一本书并写入状态。我被卡住的地方是传递状态和道具到我的书桌组件,这样我就可以在书桌上呈现书籍,而不是在主页上。 主页: 书桌代码:

  • 我试图找出如何通知另一个组件状态更改。假设我有3个组件——pp.jsx、Header.jsx和SidebarPush.jsx我只是想用onclicka切换一个类。 因此,标题。jsx文件将有2个按钮,点击时将切换状态为真或假。另外两个组件是应用程序。jsx和Header。jsx需要了解这些状态的变化,以便在这些状态发生变化时可以切换类。

  • 我是反应的新手,尝试将一个值从父组件传递给子组件到props并将值存储在状态中。但它甚至不调用console.log语句 这是我的函数通过单击按钮来更改字符串 在父组件中,在渲染中我有这个: 子组件 从“React”导入React;将*作为样式从“”导入/编辑单元css’; 我的目标是,根据通过单击按钮更改的状态,显示div或不显示div。

  • 以下是: code>button.jsx的来源并不重要,它有一个常规的HTML单选按钮,触发本机DOM事件 预期流量为: null 尝试:在的onChange处理程序中: 问题: 尝试:在的onChange处理程序中:

  • 我实际上正在学习reactjs,并且实际上正在开发一个小的TODO列表,包装在一个名为TODO的“父组件”中。 我决定将初始化移到componentDidMount内部,但这似乎是一个反模式,我需要另一个解决方案。你能帮我吗? 下面是我的实际代码:

  • 对于Eample: 我在谷歌上搜索了这个问题,我发现我找到的答案已经过时了 关于StackOVerflow的几个问题 reactJS:为什么将组件初始状态传递为prop是反模式? reactJS:如何在呈现组件时传递初始状态? 但是我在React博客中发现了这个帖子:React v0.13.0 Beta 1 在这篇文章中,author做了我想做的事情,据我所知,现在是不推荐的。 所以问题是:通过道