Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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
Javascript Redux初始状态在操作时消失_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript Redux初始状态在操作时消失

Javascript Redux初始状态在操作时消失,javascript,reactjs,redux,Javascript,Reactjs,Redux,我的减速器中有一个初始状态,它是一个空对象 const initialState = { postHistory: {}, loading: true }; 我注意到,当我从一个不同的组件运行一个函数来分派操作时,这个初始状态实际上消失了。这给我带来了问题,因为在我的一个组件中,我试图检测这个对象中数据的存在 const obj = this.props.postHistory; this.props.postHistory[Object.keys(obj)[0]] &

我的减速器中有一个初始状态,它是一个空对象

const initialState = {
    postHistory: {},
    loading: true
};
我注意到,当我从一个不同的组件运行一个函数来分派操作时,这个初始状态实际上消失了。这给我带来了问题,因为在我的一个组件中,我试图检测这个对象中数据的存在

const obj = this.props.postHistory;
this.props.postHistory[Object.keys(obj)[0]] && this.props.postHistory[Object.keys(obj)[0]]
但是,当启动操作时,我可以在redux中看到对象的初始状态已完全消失,只有加载值存在

TypeError: Cannot convert undefined or null to object
还有其他人遇到过这样的问题吗?欢迎任何克服困难的建议!多谢各位

按建议添加减速器代码:

import { POST_HISTORY } from '../actions/types';

const initialState = {
    postHistory: {},
    loading: true,
};

export default function(state = initialState, action){

    const { type, payload } = action;

    switch(type){
        case POST_HISTORY :
            return {
                ...state,
                postHistory: payload.data,
                loading: false
            }
        default:
            return state;
    }

}

首先控制台您的有效负载。数据…然后检查您获取的数据是否为“JSON”格式我们的字符串格式。如果数据为“Object”格式,则它将存储在您的POSTHISTORY中,如果您的数据为“JSON”格式化,则它不会以初始状态存储数据。

首先控制台您的有效负载。数据…然后检查您获取的数据是否为“JSON”格式我们的字符串格式。如果数据为“Object”格式,则它将存储在您的POSTHISTORY中,如果您的数据为“JSON”格式化后,它将不会以初始状态存储数据。

您可以添加相关代码(减速机、操作、调用操作的位置)吗?您处理操作的代码可能错误,正在替换您的状态,而没有添加以前的值,例如postHistoryfirst,了解如何安装Redux Devtool扩展,以便在致电action creator之前/之后快速查看您的商店,这可能会有所帮助you@Stephanie帕克,当你从其他组件调用操作时,你能粘贴你的减速机代码的代码吗?你不能直接在代码内更改道具值,您需要将prop值指定给某个变量,然后在该值内进行过滤或更改,并在视图中显示它。是否可以添加相关代码(减速机、操作、调用操作的位置)?处理操作的代码可能错误,正在替换您的状态,而没有添加以前的值,例如,PostHistory第一件事首先,学习安装Redux Devtool扩展,以便在调用action creator之前/之后快速查看商店,这可能会有所帮助you@Stephanie帕克,当您从其他组件调用操作时,是否可以粘贴减速机代码的代码。您不能直接在代码内更改道具值,您需要将道具值指定给某个变量,然后在值内进行过滤或更改,并在视图中显示。