我是react-redux的新手,我用react-redux创建了一个小型CRUD应用程序,当我从子组件中单击添加按钮时,它将从所有输入框中获取数据,并在Reducer的帮助下更新商店的数组。
const initialState = {
itemObjectArr:[] }
My Reducer更新此itemObjectArr,并借助 connect(mapStateToProps)(NeedyChildComponent)函数将其发送到需要的组件。 现在,当我尝试在控制台上打印state.itemObjectArr时,就会出现真正的问题。
const mapStateToProps = (state)=>{
console.log(state.itemObjectArr);
return {itemObject:state.itemObjectArrs}}
以上代码在控制台上出现错误 TypeError:无法读取未定义的属性“ itemObjectArrs” 如果我执行 console.log(state),它将轻松打印包含数组的对象,而不会出现任何错误。
我搜索了此错误,但没有得到任何重要提示,我认为该商店的状态是不可变的,当将其作为参数传递给mapStateToProps函数时,mapStateToProps会检查状态变化,如果未得到任何变化,则返回错误。也许这是在这里发生。
答案 0 :(得分:0)
减速器是什么样的?由于商店在组件中以 undefined 返回,因此在我看来,您尚未在switch语句中定义默认情况,该语句返回更新之前的初始状态操作已执行,例如:
const myReducer = (state, action) => {
switch (action.type) {
case 'UPDATE_ITEM_OBJECT_ARR': return { itemObjectArr: [ 1, 2, 3] }
default:
return initialState;
}
}