如何映射json数据以获取所有单个组件?
我想从这些数据中获取所有单独的组件,这些数据是我从API中获取的。但来自API的数据如下所示:如何映射json数据以获取所有单个组件?,json,reactjs,laravel,Json,Reactjs,Laravel,我想从这些数据中获取所有单独的组件,这些数据是我从API中获取的。但来自API的数据如下所示: { "1":{ "id":1, "name":"Burger", "price":8.99, "quantity":"2", "attributes":[ ], "conditions":[ ] }, "2":{ "id":2, "name"
{
"1":{
"id":1,
"name":"Burger",
"price":8.99,
"quantity":"2",
"attributes":[
],
"conditions":[
]
},
"2":{
"id":2,
"name":"Poutine",
"price":9.99,
"quantity":"2",
"attributes":[
],
"conditions":[
]
}
}
如果我在这个数组上使用map函数,它会说map函数不存在。而且没有一个通用的数组名可以用来获取所有数据。我是否应该使用for循环来遍历其中的所有产品?这是一个对象,但属性“键”似乎都是顺序数字 如果您不关心键,只需对其调用
Object.values()
,即可返回值数组,映射函数将根据该数组工作
var obj ={
"1":{
"id":1,
"name":"Burger",
"price":8.99,
"quantity":"2",
"attributes":[
],
"conditions":[
]
},
"2":{
"id":2,
"name":"Poutine",
"price":9.99,
"quantity":"2",
"attributes":[
],
"conditions":[
]
}
};
var justTheValues = Object.values(obj);
//get the list of just the ids
var idList = justTheValues.map(function(item){
return item.id;
});
请
Object.entries(data).map(item=>item[1]).map()
您可以使用lodash的地图
import _ from 'lodash'
let data ={
"1":{
"id":1,
"name":"Burger",
"price":8.99,
"quantity":"2",
"attributes":[
],
"conditions":[
]
},
"2":{
"id":2,
"name":"Poutine",
"price":9.99,
"quantity":"2",
"attributes":[
],
"conditions":[
]
}
};
_.map(data,( item) => console.log(item))
在父组件中,使用for In循环映射值以生成组件数组
let arr = [];
for(let i in obj){
let item = obj[i]
arr.push(<DataComp {...item}/>)
}
让arr=[];
用于(让我输入obj){
let item=obj[i]
arr.push()
}
这里有一个工作片段,您可以查看它
类DataComp扩展了React.Component{
render(){
//在这里,您可以根据需要设置子组件
返回(名称:{this.props.Name},价格:{this.props.Price});
}
}
类应用程序扩展了React.Component{
render(){
设obj={
"1":{
“id”:1,
“姓名”:“汉堡”,
“价格”:8.99,
“数量”:“2”,
“属性”:[
],
“条件”:[
]
},
"2":{
“id”:2,
“名称”:“Poutine”,
“价格”:9.99,
“数量”:“2”,
“属性”:[
],
“条件”:[
]
}
};
设arr=[];
用于(让我输入obj){
let item=obj[i]
arr.push()
}
返回({arr});
}
}
ReactDOM.render(,document.getElementById(“app”)代码>
看起来像一个以数字为键的对象文字,它肯定不是数组。可能是Laravel后端中的JSON转换,而不是数组。