Javascript 无法将状态设置为映射函数内的对象数组
我从wordpressapi获取数据,然后在map函数中构造数据。我无法将状态设置为映射函数I中的对象数组 获取不同对象的数组或不同对象的对象,但不获取单个对象 对象数组Javascript 无法将状态设置为映射函数内的对象数组,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我从wordpressapi获取数据,然后在map函数中构造数据。我无法将状态设置为映射函数I中的对象数组 获取不同对象的数组或不同对象的对象,但不获取单个对象 对象数组 const rsp = response.data; const map = rsp && rsp.map(item => { let struct = {}; let data = []; const id = item.id; const title = it
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
}})
});
我想你会想要更多像这样的东西:
const [items, setItems] = useState([])
rsp && setItems(rsp.map(item => ({
id: item.id,
name: item.title['rendered'],
uri: item['_embedded']['wp:featuredmedia'][0].source_url,
banner: item.ACF.banner_image.url,
products: item.ACF.celebrity_products
})))
我认为您没有提供代码的完整故事。但我想我们可以帮忙 如果您希望将处理结果作为一个数组放在map变量中,那么您应该在它内部返回类似的内容
让oddNumber=[1,3,5];
const map=oddNumber.map(oneOddNumber=>{return oneOddNumber*2;});
//现在地图是[2,6,10]
或者,如果您打算使用setRes
函数保存所需的数组,那么您应该执行以下操作
setRes(prevState=>({
…国家,
theResultArray:[…prevState.theResultArray,{id:store.id,…}]
}))
现在您有了属性名theResultArray
,这是您迭代过的对象数组
希望您能提供更完整的代码,以便下次帮助更清晰:D我很困惑
setRes
突变方法是否在useState
上?你在每次迭代中都调用它?这不是个好主意。。另外,如果我现在理解了这一点,那么您试图将状态设置为数组,但在每次迭代中使用单个对象覆盖状态。解决方案迭代后使用setRes
。是的,但迭代后我无法将其设置为状态,因为map函数不返回任何内容。我做了相同的事情,它将返回不同对象的不同数组,但我想要一个对象数组。如果您能提供完整的代码,我们希望能够提供更多帮助。