【问题标题】:How reverse sort on react反向排序如何反应
【发布时间】:2017-08-24 10:11:56
【问题描述】:

我正在尝试使用 ReactJS 在点击时反转这种排序:

        if (this.state.Prz==3) {
        this.props.files.sort(function(a,b){
            return a.lastModified < b.lastModified ? 1 : -1;
        });
    }

我尝试了很多在 Google 上搜索的技巧,但仍然卡住了。

【问题讨论】:

  • 我觉得没问题。
  • 排序顺序应该如何确定?它来自状态,还是道具,还是什么?看来您只需要在 sort 函数中放置一个条件。
  • 排序由道具决定。我添加条件效果更好,但似乎我的 lasModified 是错误的,但它有很大帮助,谢谢

标签: javascript reactjs


【解决方案1】:

您可以通过交换1-1 来更改排序方向(因为您似乎是按Date 排序):

this.props.files.sort(function(a,b){
    return a.lastModified < b.lastModified ? -1 : 1;
});

或者您可以反转数组,假设它在这样做之前已排序(concat() 用于制作数组的副本,保持事物“不可变”):

this.props.files.concat().reverse();

【讨论】:

    【解决方案2】:

    你可以简单地通过调用 reverse 来反转一个数组

    this.props.files.reverse()
    

    请注意,这会改变原始数组。

    【讨论】:

      【解决方案3】:

      我终于做到了。我添加一个条件。

          if (this.state.activePrz==3) {
              this.props.files.sort(function(a,b){
                  var asc = a.lastModified < b.lastModified;
                  var desc = a.lastModified > b.lastModified;
                  if(asc == true){
                      return asc;
                  }else{
                      return desc;
                  }
              })
          }
      

      它有效。

      我做不到:

      this.props.files.reverse();
      

      this.props.files.concat().reverse();
      

      错误信息是:

      无法读取未定义的属性“文件”

      非常感谢您的帮助。

      【讨论】:

        猜你喜欢
        • 2013-12-10
        • 1970-01-01
        • 2019-05-14
        • 2014-03-23
        • 2011-02-16
        • 2022-11-28
        • 2017-06-05
        • 2014-05-15
        • 2016-12-05
        相关资源
        最近更新 更多