有没有办法按特定顺序呈现Flatlist行而不对数据源进行排序?
示例
<FlatList
data={[{key: 'a'}, {key: 'c'}, {key: 'b'}]}
renderItem={({item}) => <Text>{item.key}</Text>}
/>
上面的代码呈现了一个列表
a
c
b
有没有办法让它在不对数据源进行排序的情况下呈现以下内容?
a
b
c
答案 0 :(得分:2)
基本上你说,我想要Pizzar,但不要使用香肠,肉类等。答案是否定的。
为了执行高效排序和排序,您可以尝试linq.js
linq.js,简而言之就是LINQ for JavaScript。一些特别有用/相关的功能包括:
如果Linq.JS可以解决您的性能问题,您应该先对其进行排序,然后再渲染已排序的数据源。
另一种选择是使用lodash,声称其性能更好,有关详细信息,请参阅this link。
以下是对某些数据进行排序的代码段: LINQ.JS:
var queryResult = $.Enumerable.From(jsonArray)
.OrderBy(function(x) {
return x.user.screen_name
})
.Select(function(x) {
return x.user.screen_name + ':' + x.text
})
.ToArray();
Lodash:
var queryResults = _.chain(jsonArray)
.sortBy(function (x) { return x.user.screen_name })
.map(function(x) {
return x.user.screen_name + ':' + x.text
})
.value();