我在React Native中开发了一个小应用程序,我正在寻找类似foreach函数的东西。我无法找到一个foreach循环。不在StackOverflow上,甚至在Process
中也没有。我已经找到了“地图”的内容,但我不知道这是否是我正在寻找的。 p>
通过向我的服务器发出请求,我获得了多个用户对象。当我记录结果时,它看起来像这样:
Object { "id": "1", "role": "user", "username": "user1", }, Object { "id": "2", "role": "admin", "username": "user2",
我想将其输出到列表中。 在普通的PHP中,我会使用foreach循环,但就像我说的,我无法找到React Native的foreach循环。
如何循环这些物体呢?我知道我也可以使用一个简单的for循环,但这绝对不是我的第一选择......
修改
我已使用this.state.users
将此值保存在this.setState({users: responseData.users});
中。状态在我的构造函数中定义。我尝试使用this.state.users.map(id => <Text>{id}</Text>)
访问此内容,但我始终收到相同的错误:null is not an object (evaluating 'this.state.users.map')
。我这样做了吗?
答案 0 :(得分:12)
示例:
// for of
for (let userObject of this.state.users) {
console.log(userObject.username);
}
// map
this.state.users.map((userData) => {
console.log(userData.username);
});
根据错误,您可能没有users
状态的数据,因此您收到错误。如果数据正确,那么上面的示例将正常工作
答案 1 :(得分:2)
在反应中,首选方法是Array的map
方法。使用ES6箭头功能的示例:
render() {
return (
<View>
{dataList.map(r => <Button>{r}</Button>)}
</View>
)
}
答案 2 :(得分:0)
您也可以使用lodash(npm install lodash)并运行以下命令:
import _ from 'lodash';
...
_.each(dataList, function(userObject) { console.log(userObject); });