JSXがmap()関数を使用してJSXに1つの行または行を作成できるように、配列の配列を取得してJSXに変換するのに問題があります。リストビュー。renderRow()内のJSXへの配列.map()
renderRow: function(rowData) { //rowData is an Array
return rowData.map((data) => {
// now data is a single element of my array
return <View><Text> <Emoji size={40} name={data} /></Text></View>
// also tried () around the above for the return
});
},
render: function() {
return (
<ListView contentContainerStyle={styles.list}
enableEmptySections={true}
initialListSize={500}
pageSize={20}
dataSource={this.state.dataSource}
renderRow={(rowData) => this.renderRow(rowData)}
/>
)
}
次のように私はこれを取得するエラーは、次のとおりです。
StaticRenderer.renderは():有効な要素(またはnull)と反応 を返さなければなりません。定義されていない配列、または他の何らかの オブジェクトが返されている可能性があります。
したがって、マップ内で何が起こっているのか、また何らかの理由でJSRがrenderRow()関数内で正しく構築されていないことがわかります。マップを使わないで基本的なJSXを返すのはOKですが、配列のすべての要素に対して行うことができる必要があります。
map()はこれを行う最善の方法ですか?どんな助けでも大歓迎です。
あなたは 'renderRow'関数の戻り値をすることになっているもののドキュメントを見ていたことがありますか?私はそれが配列ではないと思う。したがって、問題はJSXやReactとは特に関係ありません。 –
@Felixあなたは正しいです。私はその関数の戻り値の型のdocを参照しませんでした。それを指摘してくれてありがとう。しかし、それは私にとっても他の誰にも役立たなかった。 –