2016-10-03 8 views
2

を表示 - ビュー(ScrollView)の値が、以下のコードで成功を得ていない:私にconsole.logはすべてを表示している反復キー/値を超えると、私はキーをレンダリングしようとしているそれを

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

OKと私はObject.keysでエラーが始まると思います...シミュレータの表示は明らかに何も表示されていません。

どのようにキー、値を反復処理して表示できますか?

+2

あなたはすなわち 'MyResult'が含まれている配列である、外側' .MAP(...) 'コールバックから何かを返されていません値としては 'undefined'だけです。私はあなたが実際に欲しい/必要とするのは* flatMap *だと思います。 –

+0

私はflatMapを使ったことがありません。それをする最善の方法は何ですか? –

+1

カスタム実装は3-5行のコードです。またはhttps://www.npmjs.com/package/lodash.flatmapのような既存の実装を使用します。もちろん、 'MyResult'を平坦化することもできます(外側の' .map'コールバックから結果を返すと仮定します)。 –

答えて

2

コメントでFelixが述べたように、あなたは外側のマップから何も返されていません。ちょうどそのようなように、Object.keysreturnを追加してみてください、それが動作するかどうかを確認:

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

ありがとう、私は今考えを得た。私はフラットマップについても学ぶつもりです。 –

関連する問題