listview - React Native 使用 flatlist 传递 rowId
问题描述
我想传递我的 rowId 数据,但我会得到一个错误。我ListView
最初使用的是,但现在已弃用,所以我必须Flatlist
改用它。但我无法通过我的 rowId。这就是我为 flatlist 做的方式
export default class SongList extends Component
{
renderSongsList() {
let songsDataSource = this.props.section.songs;
return(
<FlatList
data={songsDataSource}
renderItem={({item,rowId}) => (
<TouchableHighlight onPress={ () => Actions.Player({ songIndex: parseInt( rowId ), songs: this.props.section.songs }) } activeOpacity={ 100 } underlayColor="rgba(246, 41, 118, 0.6)">
<View>
<Text style={styles.itemTitle}>
{ item.title }
</Text >
<Text style={styles.itemArtist}>
{ item.artist }
</Text>
</View>
</TouchableHighlight>
)}
keyExtractor={(item, index) => index.toString()}
/>
);
}
render()
{
return (
<View style={ styles.list}>
<View style={ styles.songsList }>
{ this.renderSongsList() }
</View>
</View>
);}}
这是我使用的旧代码ListView
export default class SongList extends Component
{
renderSongsList() {
let songsDataSource = new ListView.DataSource({ rowHasChanged:
(r1, r2) => r1 !== r2 }).cloneWithRows( this.props.section.songs );
return(
<ListView
dataSource={ songsDataSource }
style={ styles.songsList }
renderRow={(song, sectionId, hello) => (
<TouchableHighlight onPress={ () => Actions.Player({ songIndex: parseInt( hello ), songs: this.props.section.songs }) } activeOpacity={ 100 } underlayColor="rgba(246, 41, 118, 0.6)">
<View key={song} style={ styles.song }>
<Text style={styles.itemTitle}>
{ song.title }
</Text >
<Text style={styles.itemArtist}>
{ song.artist }
</Text>
</View>
</TouchableHighlight>
)}/>
);
}
render()
{
return (
<View style={ styles.list}>
<View style={ styles.songsList }>
{ this.renderSongsList() }
</View>
</View>
);}}
解决方案
推荐阅读
- javascript - 如何在jquery中使用循环获取div的动态id
- javascript - 如何使按钮独立工作
- angular - 如何将多个表单提交作为单独的值存储在 localStorage 中?
- python - 无法在 Elasticsearch 上执行嵌套聚合
- iframe - 允许 Grafana 图表 iframe 仅通过受信任域访问
- amazon-web-services - AWS Step Functions IF 等效项
- node.js - 合并两个或多个音频流,并写入它们
- monitoring - Thruk Reporting 模块 SLA 计算
- android - 如何以编程方式在键盘上设置 imeOptions
- java - Spring Boot Config Server 添加 Vault,无法取回 propertySources