我在构造函数中声明了一个名为filter的空数组:
constructor(props){
super(props);
this.state = {
filter: []
}
}
我得到一个API响应,它是一个类似于下面的数组对象并存储在过滤器变量中。
[
{
name: "xyz",
language: "english",
age: 20
},
{
name: "abc",
language: "history",
age: 21
},
{
name: "efi",
language: "geography",
age: 20
}
]
我正在寻找一种方法,我可以在jsx文件中默认为过滤器数组中的每个对象设置类似checked = false的属性。虽然API的响应是在上面,但是在收到响应后,数组应该是
[
{
name: "xyz",
language: "english",
age: 20,
**checked: false**
},
{
name: "abc",
language: "history",
age: 21,
**checked: false**
},
{
name: "efi",
language: "geography",
age: 20,
**checked: false**
}
]
答案 0 :(得分:2)
使用map和Object.assign
,假设obj
是您从api获得的respanse,您可以运行下面的函数来解析数组,然后将respanse设置为您的状态
var obj=[
{
name: "xyz",
language: "english",
age: 20
},
{
name: "abc",
language: "history",
age: 21
},
{
name: "efi",
language: "geography",
age: 20
}
]
var result = obj.map(el => {
var o = Object.assign({}, el);
o.checked = false;
return o;
})
console.log(result);
答案 1 :(得分:0)
Api.post(JSON.stringify(ConditionJson), AppConst.BaseURL + 'query/execute/conditions/LoyaltyStamps', (err, responseJson) => {
if (err) {
Alert.alert('Error!', err);
}
else {
var checked = 'false';
var name = responseJson.map(function (info) {
checked += 'false';
});
this.setState({
ischecked: checked
});
}