gpt4 book ai didi

javascript - 我必须在 FlatList 的 renderItem 中使用 item.item.property 而不是 item.property

转载 作者:行者123 更新时间:2023-11-28 17:34:41 28 4
gpt4 key购买 nike

我有这个代码

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

它有效,但正如你所看到的,我必须使用“genre.item.id”(或“genre.item.name”)而不是简单的“genre.id”。
如果我更改 renderItem (就像文档所说的那样)

renderItem={({genre}) => ( // look brackets around "genre"

我尝试使用

...
<Text>{genre.name}</Text>
...

我收到此错误

Cannot read property 'name' of undefined

这是 this.state.music_genres 的值

[{…}]
0: {id: 7, name: "Swing", plural: null, language: "it", genre_type: "music"}
length: 1

为什么我不能使用“genre.id”?

最佳答案

您不能使用({genre}),因为这是对象解构。在此参数中将出现一个带有属性 item 的对象(由 React 传递),如下所示:

obj : { item: {...}}

因此,当您尝试从此 obj 获取 genre 时,您只会得到未定义的结果,因为此对象参数中没有流派。

只需执行 renderItem={({item}) => ( 并使用 item.id 即可。

关于javascript - 我必须在 FlatList 的 renderItem 中使用 item.item.property 而不是 item.property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49395642/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com