react-redux注意点

connect可以处理你需要传入props和actions的组件,哪里都可以,也可之传入本组件需要的从全局state上的数据。但是combineReducer需要传入所有reducer(设计的有问题吧?)不然会报错:

warning.js:14 Unexpected key "about" found in previous state received by the reducer. Expected to find one of the known reducer keys instead: "items", "filter". Unexpected keys will be ignored.

reducer的使用中,传入的state不可以直接修改并返回。这里需要返回一个全新的nextState,这个nextState全新指的是你需要重新做一个由单个元素拼接而成的(比如数组),那么就需要直接返回一个新的,或者把原数组打散,改造,即

// es5 的办法
state = [].concat(state.slice(), action.item);

// es6 的办法 解构
state = [...state, sction.item]

来生成一个全新state,然后return;
如果用immutable.js来处理,保证每次处理后的都是全新的,那么就可以直接操作了。如:

const initialItems = Immutable.List([1, 2, 3]);
(state=initialItems, action) => {
  state = initialItems;
  return state.push(action.item)
}

你可能感兴趣的:(react-redux注意点)