我正在学习 React 和 Redux,似乎无法理解为什么我的状态下的一个简单数组无法正常工作,但如果我添加另一个甚至没有被使用的变量,那么一切都会正常工作。这是我的商店:
const store = createStore(
reducer,
{items:[],
a:100
}
这是映射:
const mapStateToProps = (state) => {
return {
list:state.items,
a:state.a
};
};
这是我的 reducer 返回的内容:
return {a:state.a-1000,
items:state.items}
变量“a”未被使用,但由于某种原因,如果我将其从上述代码块中删除,则应用程序将无法正常运行。在reducer的return语句中,即使我用state.a更改state.a-1000,它也会停止正常运行。我似乎无法理解发生了什么事。当状态中只有一个不是数组的变量时,状态可以正常工作,但是当状态中只有一个数组时,由于某种原因,它需要另一个变量。
最佳答案
redux 状态需要是不可变的。 items:state.items
改变 redux 不会拾取的状态。
尝试 {...state, items}
(其中 items
是新列表)或尝试使用 Immutable.JS
更多信息请点击此处 - https://redux.js.org/faq/immutable-data
关于javascript - 无法理解为什么状态内的单个数组不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58392516/