Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 减速器始终返回初始状态_Reactjs_React Native_Redux_React Redux - Fatal编程技术网

Reactjs 减速器始终返回初始状态

Reactjs 减速器始终返回初始状态,reactjs,react-native,redux,react-redux,Reactjs,React Native,Redux,React Redux,我一直在使用react native和redux,但遇到了一个错误。该状态始终初始化为起始状态,尽管在减速器内部调试时有效负载存在 这是我的文件 let initialState = { filterList: [], isFetching: false, activeFilters: [], } export function fetchFilterList(state = initialState, action) { return { ...state, isFetching:

我一直在使用react native和redux,但遇到了一个错误。该状态始终初始化为起始状态,尽管在减速器内部调试时有效负载存在

这是我的文件

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 };

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

}

这是我的联合收割机减速机函数,位于一个名为main reducers的单独文件中

    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);

我将假设您的操作类型没有适合您正在调用的函数的类型,因此它将恢复为默认情况。

找不到任何问题。在哪里记录信息?尝试将日志中间件添加到redux,以了解发生了什么。不要假设。你可以评论,我现在还不能评论。我相信你的答案可能是错的。它不是每次都设置initialState,而是如果没有定义状态,它会还原为initialState。我可以理解。最后我重新启动了所有程序,现在它似乎可以工作了?我不知道为什么或什么,但重启包装机后,一切似乎都正常。但这是一样的,不是吗?我后来在函数中传播这个对象,我想这是同一件事?还是我错了?你试过我的建议了吗?后来你只是复制了初始值,而不是更新后的状态值。我复制了,但它是一样的,对我没有帮助:(@strelets在function@Tokikko然后,我可以强烈地说,罗斯的答案是考虑我觉得作为一个评论。
return fetchFilterList(...state, action);