javascript - 状态未初始化为初始状态

标签 javascript reactjs redux react-redux reducers

我是 react-redux 的新手。

现在我有一个像 ,

const initialState = {
        Low: [
            {
                id: 0,
                technologyId: 0,
                technology: '',
                level: 'EASY'
            }
        ],
        Medium: [
            {
                id: 0,
                technologyId: 0,
                technology: '',
                level: 'MEDIUM'
            }
        ],
        High: [
            {
                id: 0,
                technologyId: 0,
                technology: '',
                level: 'TOUGH'
            }
        ]
    }

Now, 

    export default function QuizData(state = initialState, action) {
        switch (action.type) {
            case QUIZ_DATA:
                return {
                    ...state,
                    Low: action.data,
                    error: false,
                } 
            case RESET_SETUP_QUIZ: {
            console.log("intial state is ",  ...state);
            return {
                ...state
            }

现在,这里发生的是在一些操作之后,这个对象随着每个键都有一些值而发生变化。喜欢,

因此,这会发生变化。

{
        Low: [
            {
                id: 0,
                technologyId: 11,
                technology: 'xsxs',
                level: 'EASY'
            }
        ],
        Medium: [
            {
                id: 0,
                technologyId: 22,
                technology: 'swwsw',
                level: 'MEDIUM'
            }
        ],
        High: [
            {
                id: 0,
                technologyId: 110,
                technology: 'xsxsx',
                level: 'TOUGH'
            }
        ]
    }

现在,我想做的是,

当用户点击一个按钮时,我想将其更改为初始状态。

因此它不会有任何值,因为它应该与默认值相同。

SO,我试过了

return {
   initalState
}

但后来我尝试使用 object.assign

case QUIZ_DATA:
  return Object.assign(
    {},
    state,
    {
      Low: action.data,
      error: false
    }
  )

但这里它仍然只复制第一层变量。

所以,我仍然无法做到这一点。

谁能帮我解决这个问题?

最佳答案

Object.assign 对深拷贝没有帮助。

如果你想做深拷贝使用。

let newObj = JSON.parse(JSON.stringify(obj));

这里 newObj 将是深拷贝。

关于javascript - 状态未初始化为初始状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53663301/

相关文章:

javascript - Object.assign({}, item) 将对象合并为一个不起作用

backbone.js - React.js : Bind to Existing Elements

javascript - Redux 在导航到另一个页面时丢失状态

reactjs - 未捕获的 TypeError : dispatch(. ..).then 不是一个函数

javascript - 以递归方式在项目数组中实现搜索 : React JS

oop - Redux 是否要求我们不要使用 OOP?

javascript - Redux + React-Router 不渲染

javascript - 如何获得我的网站的实时预览

javascript - JS Function 调用自身而不被调用

javascript - 如何更改使用 Grunt 处理 JS 文件的 WordPress 主题?