javascript - 无法理解为什么状态内的单个数组不起作用

标签 javascript reactjs react-redux

我正在学习 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/

相关文章:

javascript - 在 LightningChartJs 中获取一系列的可见点

javascript - 不能 .map() 一个看似数组的值

javascript - 需要使用 redux 从数组中删除项目

reactjs - React Native Expo 离线应用 : How to Update Local Database from Remote Server

javascript - 提取 Redux Store/State 作为选择器

javascript - if/else if/else 会在某个时候变成 typescript/javascript 中的表达式吗?

javascript - Highcharts:当x轴有间隙时如何分割线图

javascript - 无法读取未定义的属性 'createElement'

javascript - React-Redux:删除一个项目不会重新渲染数组

php - 在 JavaScript 数组中包含项目