reactjs - reducer 始终返回初始状态

标签 reactjs react-native redux react-redux

我一直在使用react-native和redux,并且遇到了错误。尽管当我在 reducer 内调试它时存在有效负载,但状态始终初始化为起始状态。

这是我的 reducer 文件

let initialState = {
filterList: [],
isFetching: false,
activeFilters: [],
}


export function fetchFilterList(state = initialState, action) {
    return { ...state, isFetching: true };
}

export function fetchFilterListSuccess(state, action) {
    return {
        ...state,
        filterList: action.payload,
        isFetching: true,
        dsad: "dada",
    }
}

export function fetchFilterListError(state, action) {
    return { ...state, isFetching: false };

}

这是我将它们组合成一个函数的地方(在与上面相同的文件中):

export function combinedFiltersReducers(state = initialState, action) {
switch (action.type) {
    case ACTION_TYPES.FETCH_FILTER_LIST:
        return fetchFilterList(state, action);

    case ACTION_TYPES.FETCH_FILTER_LIST_SUCCESS:
        return fetchFilterListSuccess(state, action);

    case ACTION_TYPES.TOGGLE_FILTER_ITEM:
        return toggleFilterItemStart(state, action);

    case ACTION_TYPES.TOGGLE_FILTER_ITEM_SUCCESS:
        return toggleFilterItemSuccess(state, action);

    default:
        return state;
}

}

这是我的组合 reducer 函数,位于一个名为主 reducer 的单独文件中。

    export default combineReducers({
    adList: fetchAdListSuccess,
    filterList: combinedFiltersReducers,
});

这是我接收组件状态的地方,它总是落到初始状态。

    const mapStateToProps = state => ({
    filterList: state.filterList,
});

const mapPropsToDispatch = dispatch => ({
    fetchFilterList:() => dispatch(fetchFilterList()),
    toggleFilterItem: (data) => dispatch(toggleFilterItem(data)),
});

export default connect(
    mapStateToProps,
    mapPropsToDispatch
)(FilterComponent);

我找不到错误,所以我需要一些帮助。提前致谢。

最佳答案

好的,我发现一个问题。举个例子:

return fetchFilterList(state, action);

您正在调用 fetchFilterList 方法并传递初始状态。所以每次调用它实际上都会传递初始状态。该方法只是复制初始状态。而是这样做:

return fetchFilterList(...state, action);

关于reactjs - reducer 始终返回初始状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52670727/

相关文章:

javascript - 我可以通过 Prop 传递要使用的对象名称吗?

javascript - 在 react-native 中关闭应用程序之前的最后一个方法(或函数)

react-native - React Native 中的 Expo-Image-Picker

javascript - 让辅助方法在状态初始更新时运行

javascript - 使用异步数据获取的服务器端呈现

javascript - 如何访问按给定 ID 过滤的嵌套多维数组的元素?

javascript - 下拉响应和 Redux

reactjs - Redux Toolkit RTK 查询 useMutation 并保留缓存数据

javascript - 无法通过 props 将事件处理程序发送到子元素

javascript - React Native Firebase auth().signInWithPhoneNumber() 在发布 APK 中返回意外错误