React native 在FLATLIST中按上绑定列表项(React Native)
使用flatlist在我的项目中创建项目列表。我的项目在列表中呈现良好 这里有一个收藏夹图标,用于选择产品作为收藏夹。 根据我的数据,我正在更改底座上的图标,该产品是否受欢迎 我想要的是将每个产品绑定到标记为收藏夹并更改颜色。 简而言之,需要切换收藏夹和非收藏夹图标 我的代码 我正在渲染的数据 扁平列表React native 在FLATLIST中按上绑定列表项(React Native),react-native,react-native-flatlist,React Native,React Native Flatlist,使用flatlist在我的项目中创建项目列表。我的项目在列表中呈现良好 这里有一个收藏夹图标,用于选择产品作为收藏夹。 根据我的数据,我正在更改底座上的图标,该产品是否受欢迎 我想要的是将每个产品绑定到标记为收藏夹并更改颜色。 简而言之,需要切换收藏夹和非收藏夹图标 我的代码 我正在渲染的数据 扁平列表 index.toString()} ListHeaderComponent={this.Render_FlatList_Sticky_header} stickyHeaderIndices={[
index.toString()}
ListHeaderComponent={this.Render_FlatList_Sticky_header}
stickyHeaderIndices={[0]}
/>
Render_flatlist_Data=({item:rowData})=>{
.....
this.TickFav()}>
.....
}
如何在单击产品收藏夹图标时使产品成为我的最爱
提前谢谢 将
rowData
作为参数传递到onPress
方法中,并在单击项目时更新is\u fav
状态
TickFav = (rowData) => {
rowData.is_fav = !rowData.is_fav
}
当你点击你的物品时,使用onPress,传递id,并在id的基础上检查物品并相应地切换其fav
onPress={() => {his.TickFav(id) }
首先,我们需要有一个变量来监视状态数据是否已更改。(即)某些产品已标记或未标记为收藏夹 这有助于平面列表通知值已更改,以便我们必须重新渲染 在您的情况下,在Flatlist中添加extraData字段应该可以
<FlatList
data={this.state.entries}
extraData={this.state}
numColumns={this.state.columns}
key={this.state.key}
renderItem={this.Render_flatlist_Data}
keyExtractor={(item, index) => index.toString()}
ListHeaderComponent={this.Render_FlatList_Sticky_header}
stickyHeaderIndices={[0]}
/>
TickFav = rowData => {
rowData.is_fav = !rowData.is_fav
this.setState({});
}
感谢@Mukundhan的快速回复。你的解决方案对我有效。再次感谢。我的荣幸。:)
onPress={() => {his.TickFav(id) }
<FlatList
data={this.state.entries}
extraData={this.state}
numColumns={this.state.columns}
key={this.state.key}
renderItem={this.Render_flatlist_Data}
keyExtractor={(item, index) => index.toString()}
ListHeaderComponent={this.Render_FlatList_Sticky_header}
stickyHeaderIndices={[0]}
/>
TickFav = rowData => {
rowData.is_fav = !rowData.is_fav
this.setState({});
}
TickFav = (index) => {
const {entries} = this.state;
entries[index].is_fav = !entries[index].is_fav;
this.setState({entries});
}