React Native with redux:我们可以为操作提供初始有效负载

时间:2018-06-05 03:39:45

标签: react-native redux action

按照设计,我们在定义动作时是否允许使用默认有效载荷?

export const fetchApi = (payload = { propA: 'asdf', propB: new Date() ... etc }) => {
   return {
     type: 'FETCH_DATA',
     payload: payload
   };
}

注意:它可以用作此有效负载的签名吗?我的意思是传入的有效载荷必须具有这些数据。

1 个答案:

答案 0 :(得分:2)

如果需要,您可以在reducer中定义默认有效负载。例如,在你的Action.js中:

export const fetchApi = (payload) => {
   return {
     type: 'FETCH_DATA',
     payload: payload
   };
}

在你的Reducer.js中:

...
case 'FETCH_DATA':
    let defaultPayload = { propA: 'asdf', propB: new Date() ... etc }

return {
    ...state,
    fetchDataPayload: action.payload || defaultPayload
};

或者如果你想在initialData和真正的有效载荷之间混合:

...
case 'FETCH_DATA':
    let defaultPayload = { propA: 'asdf', propB: new Date() ... etc }

return {
    ...state,
    fetchDataPayload: {...defaultPayload, ...action.payload}
};

在这种情况下,如果在action.payload中找到公共属性,它将覆盖defaultPayload中的那些定义。

希望这有帮助!