我可以将商店的状态与react-redux中的组件绑定吗?

时间:2018-07-08 13:32:55

标签: reactjs redux react-redux

我是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会检查状态变化,如果未得到任何变化,则返回错误。也许这是在这里发生。

1 个答案:

答案 0 :(得分:0)

减速器是什么样的?由于商店在组件中以 undefined 返回,因此在我看来,您尚未在switch语句中定义默认情况,该语句返回更新之前的初始状态操作已执行,例如:

const myReducer = (state, action) => {
  switch (action.type) {
    case 'UPDATE_ITEM_OBJECT_ARR': return { itemObjectArr: [ 1, 2, 3] }

    default:
      return initialState;
  }
}