React Native foreach循环

时间:2017-08-24 12:01:35

标签: loops react-native foreach

我在React Native中开发了一个小应用程序,我正在寻找类似foreach函数的东西。我无法找到一个foreach循环。不在StackOverflow上,甚至在Process中也没有。我已经找到了“地图”的内容,但我不知道这是否是我正在寻找的。

通过向我的服务器发出请求,我获得了多个用户对象。当我记录结果时,它看起来像这样:

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')。我这样做了吗?

3 个答案:

答案 0 :(得分:12)

您可以使用mapfor-of或任何其他

示例:

// 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); });