【问题标题】:Redux not returning objectRedux 不返回对象
【发布时间】:2021-09-21 10:50:14
【问题描述】:

我发现自己在兔子洞里哈哈。我正在调用获取对象列表并且调用成功,并且我可以看到返回的数据。但我不明白为什么 columnDefs 没有更新成功数据。

defaultState = {
  columnDefs: []
}

export default function MarketReducer(state = defaultState,action ){
  switch (action.type){
        case GET_MARKETING_LIST:
            return Object.assign({}, state, {
                columnDefs: [],
            });
        case GET_MARKETING_SUCCESS:
           return Object.assign({}, state, {
                columnDefs: action.payload.data.column_headers.columnDefs,
            });
        case GET_MARKETING_FAIL:
            return Object.assign({}, state,{
                error: action.error,
                columnDefs: [],
            });
        default:
        return state;
  }
}

export function getMarketingProspects() {
        return {
            type: GET_MARKETING_LIST,
            payload: {
                request: {
                    url: "/marketing/customers",
                    method: "GET"
                }
            }
        };
}

然后我有一个触发 getMarketingProspects() 的按钮。问题是商店没有更新。

【问题讨论】:

  • 为什么getMarketingProspects 会更新商店?它返回一个硬编码的对象并且不接触商店。
  • 您没有switch 声明。如果您不打算使用有效负载,为什么还要传递它?
  • @Andy,对不起,我有一个开关,忘记放在这里,我会更新我的描述
  • @Quentin 什么硬编码对象?
  • 您传入payload,但您正在使用只有一个空数组作为属性值的对象更新状态。 payload 根本没有被使用。 @chewie

标签: javascript reactjs redux


【解决方案1】:

之所以没有将其设置到商店的原因是因为操作名称不同,我必须将“LIST”添加到成功并失败,然后才起作用。

GET_MARKETING_LIST: GET_MARKETING_LIST_SUCCESS: GET_MARKETING_LIST_FAIL:

【讨论】:

    【解决方案2】:
    export function getMarketingProspects() {
      return (dispatch) => {
        dispatch({
          type: GET_MARKETING_LIST,
          payload: {
            request: {
              url: "/marketing/customers",
              method: "GET"
            }
          }
        })
      }
    }
    

    现在,您应该在操作按钮上调度 getMarketingProspects 函数。像这样。

    onClick={()=> useDispatch(getMarketingProspects())}
    

    【讨论】:

      猜你喜欢
      • 2019-10-18
      • 2019-07-26
      • 2019-12-29
      • 2021-01-20
      • 2020-02-16
      • 1970-01-01
      • 2018-05-10
      • 2018-04-11
      • 2018-02-23
      相关资源
      最近更新 更多