React Native - FlatList 排序而不排序数据
React Native - FlatList ordering without sorting data
有没有办法在不对数据源进行排序的情况下按特定顺序呈现 Flatlist 行?
例子
<FlatList
data={[{key: 'a'}, {key: 'c'}, {key: 'b'}]}
renderItem={({item}) => <Text>{item.key}</Text>}
/>
以上代码渲染了一个列表
a
c
b
有没有办法让它在不对数据源进行排序的情况下呈现以下内容?
a
b
c
基本上你是在说,我想要 Pizzar,但不要用香肠、肉等等。所以答案是否定的
为了进行高效的排序排序,可以尝试linq.js
linq.js,简而言之就是 JavaScript 的 LINQ。一些特殊的 useful/pertinent 功能包括:
- 实现所有 .NET 4.0 方法和许多额外方法(灵感来自 Rx、非手性、Haskell、Ruby 等...)
- 完成lazy evaluation
- 绑定 JavaScript(RxJS) 和 IntelliSense
的响应式扩展
如果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();
有没有办法在不对数据源进行排序的情况下按特定顺序呈现 Flatlist 行?
例子
<FlatList
data={[{key: 'a'}, {key: 'c'}, {key: 'b'}]}
renderItem={({item}) => <Text>{item.key}</Text>}
/>
以上代码渲染了一个列表
a
c
b
有没有办法让它在不对数据源进行排序的情况下呈现以下内容?
a
b
c
基本上你是在说,我想要 Pizzar,但不要用香肠、肉等等。所以答案是否定的
为了进行高效的排序排序,可以尝试linq.js
linq.js,简而言之就是 JavaScript 的 LINQ。一些特殊的 useful/pertinent 功能包括:
- 实现所有 .NET 4.0 方法和许多额外方法(灵感来自 Rx、非手性、Haskell、Ruby 等...)
- 完成lazy evaluation
- 绑定 JavaScript(RxJS) 和 IntelliSense 的响应式扩展
如果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();