关于这一点的文档中没有任何内容,所以任何人都可以告诉我这究竟意味着什么:
sectionHeaderHasChanged: (s1, s2) => s1 !== s2,
或者这个:
sectionHeaderHasChanged: (h1, h2) => h1 !== h2,
你通常在这里看到它:
var ds = new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== r2,
sectionHeaderHasChanged: (h1, h2) => h1 !== h2,
});
虽然我们在讨论它,但不太确定关于rowHasChanged的第一行是什么/意味着什么。
答案 0 :(得分:1)
这里有两个概念,箭头函数和sectionHeaderHasChanged和rowHasChanged属性。
箭头功能
这是ecmascript 6中的一个新功能,它允许快速创建小型匿名函数,这些函数保留在周围代码enter code here
的上下文中,例如:
语法很简单:(arguments) => {function body}
例如以下两个将为onclick指定相同的函数回调:
btn.onclick = (event) => {console.log(event)}
btn.onclick = function(event){console.log(event)}
sectionHeaderHasChanged&& rowHasChanged:强> 许多功能都是反应原生的,并不像我希望的那样有很好的记录,但它仍处于早期阶段,我能说清楚,
仅重新渲染已更改的行 - 提供的rowHasChanged函数 数据源告诉ListView是否需要重新呈现一行 因为源数据已更改 - 请参阅ListViewDataSource了解更多信息 的信息。
数据源对象允许两次回调: 1. rowHasChanged 2. sectionHeaderHasChanged 两者检查先前渲染的row / sectionHeader(分别)是否已更改,并应在用户在列表中上下滚动时进行渲染。
对于上面的代码片段,您将提供dataSource回调ARROW函数,每个函数接受两个参数:
注意:在主体中只有一个语句的ARROW函数可以省略花括号和返回运算符,它们将自动返回其一个表达式的结果。
例如(a, b) => a + b
与(a, b) => {return a + b}
和function(a, b){return a + b}