用户登录后更新组件(React / Redux)

时间:2018-08-08 06:29:26

标签: reactjs redux

昨天我在我的react应用程序中实现了一个身份验证系统。另外我添加了Redux。

所以现在我有以下减速器:

  • appReducer
  • listReducer

我的商店看起来像这样:

{
  appReducer: {
    user: {
      guid: null
    }
  }
  listReducer: {
    list: []
  }
}

组件结构:

- App (logic for authentication)
-- Navigation
-- Routes
--- ListPage (logic for list)

我希望在用户登录时(商店中guid更改)刷新ListPage组件中呈现的list[]。 当前的解决方案是,我在AppActions中创建了fetchList,但是我敢肯定,那不是获得我想要的东西的好方法。

当guid的值更改时,如何正确触发fetchList操作?

谢谢!

编辑:fetchList是一个redux操作,其中包括axios api调用

2 个答案:

答案 0 :(得分:1)

在使用Redux时,您正在通过将操作分派给reducer来更新guid的值。我想说,您应该在更新guid之后立即调度列表更新操作。随着list值在组件中被映射为props,它将被重新渲染。

答案 1 :(得分:1)

我会在ListPage的componentDidMount函数内部进行fetchList调用,但还会执行if语句,像这样:

componentDidMount(){
    if(this.props.store.guid !== "null"){
        this.props.fetchList();
    }
}

我希望你明白这一点。 顺便说一句,您商店中的顺便说一句,我不知道您是否故意这样做,但我会使用无引号的null。

相关问题