Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 在FLATLIST中按上绑定列表项(React Native)_React Native_React Native Flatlist - Fatal编程技术网

React native 在FLATLIST中按上绑定列表项(React Native)

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={[

使用flatlist在我的项目中创建项目列表。我的项目在列表中呈现良好

这里有一个收藏夹图标,用于选择产品作为收藏夹。 根据我的数据,我正在更改底座上的图标,该产品是否受欢迎

我想要的是将每个产品绑定到标记为收藏夹并更改颜色。 简而言之,需要切换收藏夹和非收藏夹图标

我的代码

我正在渲染的数据

扁平列表

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