如何在化简器中访问状态的一部分

时间:2018-11-08 11:09:40

标签: reactjs redux state reducers

就我而言,我有一个reducer,它是一个过滤器配置,而不是用一个对象初始化

initial_state = {ditance: 2, showMan: false ...} 

我希望这些值从存储中获取,因为用户已经登录并且这些值已经在Firebase firestore的bbdd中,

我正在使用库react-redux-firestore,并且该信息已经在另一个reducer中。问题是,如果我在杀死应用程序时使用静态的initial_state,它将不再与数据库中的内容同步。

所以我要问的是,是否有任何一种方法可以接受一个状态的约简部分,而存在另一个约简的状态来生成新状态。我已经看到您可以发送一个动作或类似的动作,但是我正在寻找另一种可能的动作。

1 个答案:

答案 0 :(得分:0)

如果数据在另一个reducer中,则可以获取该值,并在调用它时通过操作将其传递。

但是如果它在同一个reducer中,则必须传递两个参数

const reducer = (state = initial_state, action) = > {
    switch (action.type){
        case actionType.TOGGLE_SHOWMAN:
            return { ...state, showMan: ! state.showMan };
        default:
            return state;
    }
}

因此您可以通过调用reducer内部的状态来访问先前的状态