React native React Native with redux:我们可以获得操作的初始负载吗

React native React Native with redux:我们可以获得操作的初始负载吗,react-native,redux,action,React Native,Redux,Action,根据设计,在定义操作时是否允许使用默认负载 export const fetchApi = (payload = { propA: 'asdf', propB: new Date() ... etc }) => { return { type: 'FETCH_DATA', payload: payload }; } 注意:它可以用作此有效负载的签名吗?我的意思是传递进来的有效载荷必须有这些数据 如果需要,可以在减速器中定义默认有效负载。例如,在Action

根据设计,在定义操作时是否允许使用默认负载

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

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

如果需要,可以在减速器中定义默认有效负载。例如,在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中定义的属性


希望这有帮助

“我的意思是传入的有效负载必须具有这些数据”。恐怕很难。也许TypeScript可以。有了TypeScript你肯定可以,我一直都在用它