Redux和不可变

oop

我试图在化简函数中添加不可变。但是,Uncaught TypeError: currentState.merge is not a function当来自firebase的数据命中时,我收到错误消息

减速器代码如下(注释代码不可变)

import C from '../../constants';
import initialState from '../initialState';
import {Map, List, fromJS} from 'immutable';

const membersInitialState = fromJS(initialState.members);

export default (currentState = membersInitialState, action) => {
  let newstate;
  switch (action.type) {
    case C.RECEIVE_MEMBER_DATA:
    /*return Object.assign({}, currentState, {
      hasReceivedData: true,
      data: action.data
    });*/
    return currentState.merge({
      hasReceivedData: true,
      data: action.data
    });
    //default: return currentState || initialState.members;
  }
  return currentState;
}

rootReducer如下

import membersReducer from './members';

function rootReducer (state, action){
    return {
        members: membersReducer(state.members, action)
    }
};

export default rootReducer;

调试器屏幕

oop

问题是由于store没有使用不可变对象创建的。

export default createStoreWithMiddleware(rootReducer, fromJS(initialState));

如上所述更新后,它现在可以工作了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章