反应本机列表视图键
React-native ListView keys
我的应用程序收到一个困扰我的警告。 React 一直说我需要为每一行添加键,但无论如何我都无法添加这些键。
我的代码如下所示:
<ListView
style={styles.listView}
dataSource={this.state.favs}
renderSeparator={() => <View style={styles.listSeparator}/>}
renderRow={(rowData,i) => <Card data={rowData}
onPress={this.onCardPress.bind(this,rowData)} /> }
/>
我尝试在我的组件上添加密钥,就像这样<Card key={rowData.id}/>/
我还尝试从组件内的道具中获取密钥,并将其添加到组件的第一个元素中,在我的案例中是 TouchbleOpacity
<TouchableWithoutFeedback
key={this.props.key}
style={styles.cardBtn}>
有人可以给我一个提示吗? 还是我应该忽略此警告?
实际上renderRow
(rowData, sectionID, rowID, highlightRow)
得到四个参数,你需要第三个而不是第二个。
renderRow={(rowData, sectionID, rowID) => <Card key={rowID} data={rowData}
onPress={this.onCardPress.bind(this,rowData)} /> }
参考: facebook.github.io/react-native/docs/listview.html#renderrow
正如Gabriel Lopes在他的评论中所说,一个常见的错误是忘记向分隔符添加键。
因此,请确保已添加它们。您可以从传递给分隔符函数的参数构建它们:
renderSeparator(sectionId, rowId, adjacentRowHighlighted) {
return (<View key={`sep:${sectionId}:${rowId}`} />);
}
相关文章:
- 无法在mvc视图中使用ajax调用获取操作返回的模型对象列表
- 如何将参数从列表视图中的项传递到模板
- 根据手机上是否存在文件,在jQuery mobile中动态填充列表视图
- 如何在我传递给视图的ViewModel集合中获得jQuery可选对象的值,以作为有序列表进行迭代
- 取消选择滚动启动时的所有列表视图项目
- 使用PhoneGap和jQuery Mobile在android设备上显示动态列表视图
- 通过格式化将jquery移动组件动态添加到列表视图中
- 如何让li项目在这个jQuery列表中滑动和/或淡出视图
- jqmobile列表视图中元素之间的间距相等
- 如何在Vue.js中使用列表视图
- jQuery移动列表视图和面板
- 剑道移动列表视图更改过滤器onclick
- 无法将对象列表从视图模型设置为 javascript 变量
- Metro 应用程序中的列表视图项目单击
- 列表视图在Android上滚动断断续续且缓慢
- 带有砖石结构的轴网视图/列表视图
- 在不涉及控制器的情况下对MVC视图列表中的项进行排序
- 网格视图列表视图切换
- 推送到数组不会通过ng repeat指令更新视图列表
- Javascript / jquery在两个树视图列表之间拖放