无法将状态设置为地图函数中的对象数组

时间:2019-12-12 10:48:31

标签: javascript reactjs react-native

我正在从Word Press API获取数据,然后在map函数内部构造数据。我无法将状态设置为map函数中的对象数组 获取不同对象的数组或不同对象的对象,但不是单个 对象数组

  const rsp = response.data;

  const map = rsp && rsp.map(item => {
    let struct = {};
    let data = [];
    const id = item.id;
    const title = item.title['rendered'];
    const image = item['_embedded']['wp:featuredmedia'][0].source_url;
    const banner = item.ACF.banner_image.url;
    const products = item.ACF.celebrity_products;


    let store={
      id:id,
      title:title,
      image:image,
      banner:banner,
      products:products
    };


    setRes(prevState => {

      // struct['data'] =store;
      // data.push(store);
      return{ ...prevState,
      id: store.id,
      name: store.title,
      uri: store.image,
      banner: store.banner,
      products: store.products


  }})

  });

2 个答案:

答案 0 :(得分:0)

我认为您想要更多类似的东西:

        for i in range(cube.shape[2]):
            if np.sum(cube[:, :, i]) > 0: # To save time, don't convolve empty slices 
                cube[:, :, i] = convolve_fft(cube[:, :, i], kernel_2D)

答案 1 :(得分:0)

我认为您没有提供完整的代码故事。但我认为我们可以提供帮助。

如果您打算将处理结果作为数组包含在map变量中,那么您应该在其中返回某些内容,例如

let oddNumber = [ 1, 3, 5 ];
const map = oddNumber.map( oneOddNumber => { return oneOddNumber * 2; } );
// now map is [ 2, 6, 10 ]

或者如果您打算使用setRes函数保存想要的数组,那么您应该做类似的事情

setRes(prevState => ({ 
    ...prevState,
    theResultArray: [...prevState.theResultArray, { id: store.id, ..... } ]
}))

现在,您声明拥有属性名称theResultArray,它是您迭代的对象数组。

希望您可以提供更完整的代码,以便下次帮助时更加清晰:D