我正在学习react和redux,似乎无法理解为什么在我的状态下一个简单的数组无法正常工作,但是如果我只添加了一个甚至没有被使用的变量,那么一切正常。这是我的商店:
const store = createStore(
reducer,
{items:[],
a:100
}
这是映射:
const mapStateToProps = (state) => {
return {
list:state.items,
a:state.a
};
};
这是我的减速机的回报:
return {a:state.a-1000,
items:state.items}
未使用变量'a',但由于某种原因,如果我从上述代码块中将其删除,则应用程序将无法正常运行。即使我将state.a-1000更改为state.a,也要在减速器的return语句中停止正常运行。我似乎无法理解发生了什么。当状态中只有一个不是数组的变量时,状态很好,但是由于某种原因,状态中只有一个数组时,它需要另一个变量。
答案 0 :(得分:1)
redux状态必须是不可变的。 items:state.items
改变了redux无法拾取的状态。
尝试{...state, items}
(其中items
是新列表)或尝试使用Immutable.JS