【发布时间】:2020-08-02 16:55:06
【问题描述】:
我已经在 componentDidMount 方法中从 API 获取一些数据作为 JSON 数组,如下所示。
componentDidMount() {
return fetch('http://..someAPI../product/')
.then(res => res.json())
.then(resJson => {
this.setState({
isLoading: false,
dataSource: resJson,
});
var objects = this.state.dataSource;
for (var i = 0; i < objects.length; i++) {
console.log('Item Name: ' + objects[i].productName);
}
})
.catch(err => {
console.log(err);
});
}
在这里,我得到了我想要的 console.log 输出。现在我想将循环中的数组作为道具传递给自定义组件,但它会出错。 我的渲染方法是这样的
return (
<View>
<Content>
{this.state.dataSource.map(item => {
<Product Name={item.productName} price={item.price}/>;
})}
</Content>
</View>
);
我原来的 Json 对象是这样的
[
{
"category": [
"Food",
"Bread",
"Bun"
],
"_id": "1",
"productName": "Sausage bun",
"price": 70,
"details": "test product",
},
{
"category": [
"Food",
"Bread",
"Bun"
],
"_id": "2",
"productName": "Fish Pastry",
"price": 50,
"details": "test product",
}
]
我想传递这些数据以将产品显示为循环。我怎样才能做到这一点?提前谢谢!
【问题讨论】:
-
您得到的错误是什么?初始化时是否为 dataSource 设置了值?也许像一个空数组
-
我已将状态中的 dataSource 初始化为 null。我得到“null不是对象(评估'this.state.dataSource.map')”作为错误消息
-
而不是 null 使用一个空数组来修复它
标签: arrays json react-native object react-props