1

有没有办法以特定顺序呈现Flatlist行而不对数据源进行排序?

例子

<FlatList
  data={[{key: 'a'}, {key: 'c'}, {key: 'b'}]}
  renderItem={({item}) => <Text>{item.key}</Text>}
/>

上面的代码呈现了一个列表

a
c
b

有没有办法让它在不对数据源进行排序的情况下呈现以下内容?

a
b
c
4

1 回答 1

2

基本上你是在说,我想要 Pizzar,但不要用香肠、肉等。因此答案是否定的。

为了执行高效的排序和排序,您可以尝试linq.js

linq.js,简而言之就是 LINQ for JavaScript。一些特别有用/相关的功能包括:

  • 实现所有 .NET 4.0 方法和许多额外的方法(来自 Rx、Achiral、Haskell、Ruby 等的灵感……)
  • 完成惰性求值
  • 绑定 JavaScript(RxJS) 和 IntelliSense 的响应式扩展

如果 Linq.JS 可以解决您的性能问题,您应该先对其进行排序,然后再渲染排序后的数据源。

另一种选择是使用 lodash,据称其性能更好,详情请参阅此链接

在此处输入图像描述

以下是对一些数据进行排序的代码片段: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();

罗达什:

var queryResults = _.chain(jsonArray)
.sortBy(function (x) { return x.user.screen_name })
.map(function(x) {
    return x.user.screen_name + ':' + x.text
  })
.value();
于 2017-07-21T05:53:39.323 回答