首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ReactJs中的条件进行渲染

使用ReactJs中的条件进行渲染
EN

Stack Overflow用户
提问于 2019-01-30 08:52:57
回答 1查看 50关注 0票数 0

我应用if else语句来显示基于的不同东西--如果已经准备好了,并且用户已经登录到中,但是即使它被正确地连接到存储,它仍然是未定义的,而且我被困在加载块中。

Dashboard.js:

代码语言:javascript
复制
       ...
        componentDidMount() {
    console.log("our props", this.props.firebase.auth.uid)
  }

        render() {
            const { fireStore, firebase } = this.props;


            if(fireStore && firebase.auth.uid){
            return (
              <div className="container">
                <div className="row">
                  <BoardList boards={fireStore} />
                </div>
              </div>
            )} else {
              return(
                <div style={{ display: 'flex',flex:1 ,flexDirection: "column", justifyContent: 'center', alignItems: 'center',}}>

                  <SelfBuildingSquareSpinner color={Color.bgColor} style={{marginTop: '5em'}} />
                  <div style={{textAlign:"center", marginTop: '5em'}}>Welcome to Scrum Board</div>
                </div>
              )
            }
          } 
    const mapStateToProps = state => {
      console.log("our state from dashboard ",state);
      return {
        scrumBoard: state.scrumBoard,
        fireStore: state.fireStore.ordered.scrumboards,
        firebase: state.firebase,
        users: state.users
      };
    };

    const mapDispatchToProps = (dispatch) => {
      return {
        fetchData : () => dispatch(fetchData()),
      }
    }

    export default compose(
      connect(
        mapStateToProps,
        mapDispatchToProps
      ),
      firestoreConnect([{ collection: "scrumboards" },{collection: "users"}])
    )(Dashboard);

this.props.firebase.auth.uid是未定义的,我被困在第二个块中。&&我的控制台显示,firebase和firestore都填充了数据:

我认为这是组件生命周期问题,在这个问题上,这个仪表板组件是在商店有值之前加载的,但是我认为一旦它被填充,就应该呈现boardlist组件。

EN

回答 1

Stack Overflow用户

发布于 2019-01-30 09:32:01

在作文中切换顺序解决了这个问题!坦白说我不明白为什么现在..。但如果你遇到这个问题,我希望这会有所帮助。您的代码应该是这样的:

代码语言:javascript
复制
...
export default compose(
      firestoreConnect([{ collection: "scrumboards" },{collection: "users"}]),
      connect(
        mapStateToProps,
        mapDispatchToProps
      )
    )(Dashboard);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54436604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档