gpt4 book ai didi

javascript - ListView.DataSource 是如何使用的?

转载 作者:行者123 更新时间:2023-11-29 19:05:15 25 4
gpt4 key购买 nike

只是想知道如何从 RN ListView Documentation 中读取这个脚本:

var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});

我传递给 ListView.DataSource() 的到底是什么?我想它是一个将 rowHasChanged 声明为函数的对象?因此,当函数最终被持有它的任何对象调用时,它的父级知道要查找 rowHasChanged,并按照声明的方式使用它?

所以本质上,我们在使用 ListView.DataSource 时必须定义一个包含 rowHasChanged 的​​对象“只是一个要求”?

还是我理解有误。

谢谢!

最佳答案

rowHasChanged 只是回调的一个属性,用于区分数据数组中的两个项目。最后,您只需将一个包含值(或对象)的数组传递给封装在“cloneWithRows”-DataSource-Object 方法中的 ListView。

import React, { Component } from 'react';
import { AppRegistry, ListView, Text, View } from 'react-native';

class ListViewBasics extends Component {
// Initialize the hardcoded data
constructor(props) {
super(props);
const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
this.state = {
items: ds.cloneWithRows([
'John', 'Joel', 'James', 'Jimmy', 'Jackson', 'Jillian', 'Julie', 'Devin'
])
};
}
render() {
return (
<View style={{flex: 1, paddingTop: 22}}>
<ListView
dataSource={this.state.items}
renderRow={(rowData) => <Text>{rowData}</Text>}
/>
</View>
);
}
}

// App registration and rendering
AppRegistry.registerComponent('ListViewBasics', () => ListViewBasics);

关于javascript - ListView.DataSource 是如何使用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43442135/

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