2017-08-24 139 views
1

我正在開發React Native中的一個小應用程序,並且正在尋找類似於foreach函數的東西。我只是無法找到一個foreach循環。不在StackOverflow上,甚至不在docs中。我找到了'map',但我不知道這是我在找什麼。React Native foreach循環

隨着對我的服務器的請求,我得到多個用戶對象。當我記錄結果時,它看起來像這樣:

 
Object { 
    "id": "1", 
    "role": "user", 
    "username": "user1", 
    }, 
Object { 
    "id": "2", 
    "role": "admin", 
    "username": "user2", 

我想輸出它到列表。 在普通的PHP中,我會爲此使用一個foreach循環,但正如我所說的,我找不到React Native的foreach循環。

怎麼可能循環trought這個對象?我知道,我還可以使用一個簡單的for循環,但這不是definitly是我的第一選擇......

編輯:this.setState({users: responseData.users});保存在this.state.users此值。狀態是在我的構造函數中定義的。我試圖用this.state.users.map(id => <Text>{id}</Text>)來訪問它,但我總是得到相同的錯誤:null is not an object (evaluating 'this.state.users.map')。我做對了嗎?

回答

3

您可以使用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); 
}); 

正如你說,你可能沒有在用戶狀態有數據,所以你得到錯誤,它的數據是proepr然後上面的例子將正常工作

+0

得到一個像forEach一樣的錯誤,我試圖解決,但有另一個錯誤發生,所以這不禁要感謝迴應 –

1

在反應中,首選的方法是map Array的方法。例如,使用ES6箭頭功能:

render() {  
    return (
     <View>  
      {dataList.map(r => <Button>{r}</Button>)}  
     </View> 
    ) 
} 
+0

我得到'null不是一個對象(評估'this.state.users.map')'。僅供參考我也更新了我的問題。 – Tekk

0

你也可以使用lodash(npm install lodash)並運行foll由於:

import _ from 'lodash'; 

... 

_.each(dataList, function(userObject) { console.log(userObject); });