代码之家  ›  专栏  ›  技术社区  ›  LittleFunny

用redux响应本机:我们能为操作提供初始负载吗

  •  2
  • LittleFunny  · 技术社区  · 7 年前

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

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

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

    1 回复  |  直到 7 年前
        1
  •  2
  •   GauthierG    7 年前

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

    希望这有帮助!

    推荐文章