Javascript 我必须在item.property的平面列表intead的renderItem中使用item.item.property
我有这个密码Javascript 我必须在item.property的平面列表intead的renderItem中使用item.item.property,javascript,react-native,jsx,react-native-flatlist,Javascript,React Native,Jsx,React Native Flatlist,我有这个密码 <FlatList data={this.state.music_genres} extraData={this.state} renderItem={(genre) => ( <ListItem> <CheckBox onPress={this.onGenreChange.bind(this, item.item, genre.item.id)}
<FlatList
data={this.state.music_genres}
extraData={this.state}
renderItem={(genre) => (
<ListItem>
<CheckBox
onPress={this.onGenreChange.bind(this, item.item, genre.item.id)}
checked={this.eventHasGenre(item.item, genre.item.id) > -1 ? true : false} />
<Body>
<Text>{genre.item.name}</Text>
</Body>
</ListItem>
)}
/>
我试着用
...
<Text>{genre.name}</Text>
...
这就是这类音乐的价值所在
[{…}]
0: {id: 7, name: "Swing", plural: null, language: "it", genre_type: "music"}
length: 1
为什么我不能使用“genre.id”?您不能使用({genre})
,因为这是一个对象解构。在此参数中,将出现一个对象(通过react传递),该对象具有一个属性item
,如下所示:
obj : { item: {...}}
因此,当您试图从此obj
获取genre
时,您只会得到未定义,因为此对象参数中没有genre
只需执行renderItem={({item})=>(
并使用item.id
,您就会很好。您不能使用({genre})
,因为这是一个对象的解构。在这个参数中,将出现一个带有属性item
的对象(通过react传递),如下所示:
obj : { item: {...}}
因此,当您试图从此obj
获取genre
时,您只会得到未定义,因为此对象参数中没有genre
只需执行
renderItem={({item})=>(
并使用item.id
,您就会很好。好的,谢谢解释。列表中的列表如何?我会有2个“item”变量。我在列表中看不到此列表。但我认为您可以更改“item”的名称参数列表中的变量。如果我在父列表中更改名称,我会遇到嵌套列表的相同问题。或者我遗漏了什么?它们都是平面列表类型?是的,它们是相同的平面列表类型。好的,谢谢解释。列表中的列表如何?我会有2个“项”变量。我在列表中看不到此列表。但我认为您可以更改paren列表中“item”变量的名称。如果我在父列表中更改名称,我会遇到嵌套列表的相同问题。或者我遗漏了什么?它们都是平面列表类型?是的,它们属于相同的平面列表类型。
obj : { item: {...}}