React Native with redux:我们可以为操作提供初始负载吗
React Native with redux: Can we have initial payload for actions
根据设计,我们是否允许在定义操作时使用默认负载?
export const fetchApi = (payload = { propA: 'asdf', propB: new Date() ... etc }) => {
return {
type: 'FETCH_DATA',
payload: 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 中的那些定义。
希望对您有所帮助!
根据设计,我们是否允许在定义操作时使用默认负载?
export const fetchApi = (payload = { propA: 'asdf', propB: new Date() ... etc }) => {
return {
type: 'FETCH_DATA',
payload: 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 中的那些定义。
希望对您有所帮助!