这里有两个概念,Arrow 函数和 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:
许多特性是 react-native 并没有像我希望的那样有很好的文档记录,但它还处于早期阶段,我能说的最好,
仅重新渲染更改的行 - 提供给数据源的 rowHasChanged 函数告诉 ListView 是否需要重新渲染一行,因为源数据已更改 - 请参阅 ListViewDataSource 了解更多详细信息。
反应脸书
数据源对象允许两个回调是徒劳的: 1. rowHasChanged 2. sectionHeaderHasChanged 这两个检查以查看先前呈现的行/sectionHeader(分别)是否已更改,并且应在用户上下滚动列表时呈现。
对于上面的代码片段,您将提供 dataSource 回调 ARROW 函数,每个函数接受两个参数:
- 渲染的 row/sectionHeader 和
- 当前行/sectionHeader 如果 row/sectionHeader 没有更改并且不应重新渲染,则函数返回 false,如果已更改且应重新渲染,则返回 true。
注意:在主体中只有一条语句的 ARROW 函数可以省略花括号和返回运算符,它们将自动返回其一个表达式的结果。例如(a, b) => a + b
将与(a, b) => {return a + b}
和相同function(a, b){return a + b}