2016-10-03 72 views
2

我試圖呈現一個關鍵 - 對視圖(滾動型)的價值,但在下面的代碼沒有獲得成功:遍歷鍵/值並顯示它

render(){ 
    const MyResult = this.state.data.map((myData) => { 
    Object.keys(myData).map((key) => { 
     console.log(key + " - " + myData[key]);  
     return( 
     <View> 
      <Text>{key} - {myData[key]}</Text> 
     </View> 
    ) 
    }); 
    }) 


    return(
    <View style={styles.container}> 
    <ScrollView> 
     {MyResult} 
    </ScrollView> 
    </View> 
)} 
} 

我的console.log正在顯示一切好吧,我猜錯誤從Object.keys開始......模擬器上的顯示器顯然沒有顯示任何東西。

如何迭代鍵和值並顯示它?

+2

你是不是從外'.MAP(...)'回調,即返回任何東西'MyResult'是包含數組只有'undefined'作爲值。我認爲你真正想要/需要的是* flatMap *。 –

+0

我從來沒有使用flatMap。做這件事的最好方法是什麼? –

+1

自定義實現是3-5行代碼,或者使用預先存在的實現,例如https://www.npmjs.com/package/lodash.flatmap。當然你也可以把'MyResult'扁平化(假設你從外部的'.map'回調中返回一個結果)。 –

回答

2

正如菲利克斯在評論中提到的那樣,你不是從外面的地圖「返回」任何東西。剛剛嘗試Object.keys之前加入return,看看它的工作原理,就像這樣:

const MyResult = this.state.data.map((myData) => { 
    return Object.keys(myData).map((key) => { 
     console.log(key + " - " + myData[key]);  
     return( 
     <View> 
      <Text>{key} - {myData[key]}</Text> 
     </View> 
    ) 
    }); 
    }) 
+0

謝謝,我現在明白了。我還會研究關於flatMap的stg。 –