Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React Redux状态不替换_Javascript_Reactjs_Redux_React Redux_Redux Thunk - Fatal编程技术网

Javascript React Redux状态不替换

Javascript React Redux状态不替换,javascript,reactjs,redux,react-redux,redux-thunk,Javascript,Reactjs,Redux,React Redux,Redux Thunk,我试图通过一个操作获取一批新的产品,然后用新的批次替换状态,但是它只是将其添加到数组中 这是我用来控制国家的减速器: const initialState = { fetching: false, fetched: false, Brands:[], Markings:[], Products: [], error: null } export default function reducer(state=initialState, action=null) { s

我试图通过一个操作获取一批新的产品,然后用新的批次替换状态,但是它只是将其添加到数组中

这是我用来控制国家的减速器:

const initialState = {
  fetching: false,
  fetched: false,
  Brands:[],
  Markings:[],
  Products: [],
  error: null
}

export default function reducer(state=initialState, action=null) {
  switch (action.type){

    case "FETCH_PRODUCTS_PENDING" : {
      return {...state}
      break;
    }
    case "FETCH_PRODUCTS_REJECTED" : {
      return {...state}
      break;
    }
    case "FETCH_PRODUCTS_FULFILLED" : {
      return{ ...state, 
        Products: state.Products.concat(action.payload.data.Products),
        Brands: action.payload.data.Facets[0].Facets,
        Markings: action.payload.data.Facets[1].Facets
      }
      break;
    }
  }
  return state
}
这件事出了差错。。我不确定这个“…状态”是如何工作的,我需要做一个对象赋值还是什么


加载后我得到52个产品,当尝试请求新批次时,它将其相加,因此我的this.props.products是104个项目。。。我想用它来代替

这一行是罪魁祸首

Products: state.Products.concat(action.payload.data.Products),
在这种情况下,您只需将
Products
数组替换为action中的数组

因此,它应该是简单的

Products: action.payload.data.Products
有关
扩展运算符的详细说明,请参见此处:

这条线就是罪魁祸首

Products: state.Products.concat(action.payload.data.Products),
在这种情况下,您只需将
Products
数组替换为action中的数组

因此,它应该是简单的

Products: action.payload.data.Products
有关
扩展运算符的详细说明,请参见此处:

我现在觉得自己很笨谢谢,我现在觉得自己很笨D谢谢