无法对反应中的对象数组进行排序

2024-01-08

我试图在按下按钮时按字母顺序对数组进行排序,但到目前为止我尝试的所有操作都失败了。当我尝试控制台记录某些内容并在控制台中打印时,按钮和功能起作用。我觉得我的排序功能是错误的,但我不知道该怎么办。我该如何修复这个问题才能正常工作?

import React from "react";
import './Brewery.css'
import { Link } from 'react-router-dom';
import { ButtonToolbar, DropdownButton, MenuItem } from 'react-bootstrap';


class Brewery extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      showMenu: false,
      breweries: []
    }
  }

  componentDidMount() {
    fetch("https://api.openbrewerydb.org/breweries")
      .then(response => response.json())
      .then((data) => {
        this.setState({
          breweries: data,
        })
      })
  }

  sortAlpha() {
    const breweries = [].concat(this.state.breweries)
    .sort((a, b) => a.name > b.name)
    this.setState({breweries:breweries});
  }

  render() {

    const { breweries } = this.state;

    return(
     <div className="main-container">
       <div className="banner" styles="background-image: linear-gradient(-225deg, rgba(0,101,168,0.6) 0%, rgba(0,36,61,0.6) 50%), url('http://bitterminnesotabrewerytours.com/wp-content/uploads/2014/02/boston-beer-tours-glass.jpg');">
         <div className="banner-content">
           <h1>Brewery</h1>
           <p>Find the best brewery in town</p>
         </div>
       </div>
       <div className="container">
         <div>
           <button onClick={() => this.sortAlpha()}>Sort Alphabetically</button>
         </div>
         <div className="row">
          {breweries.slice(0,10).map((brewery, i) =>
            <div className="col-xs-12 col-sm-4" key={i}>
              <Link to={`/brewery/${ brewery.id }`}>
                <div className="card">
                  <div className="card-description">
                    <h2>{brewery.brewery_type}</h2>
                    <p>{brewery.city}, {brewery.state}</p>
                  </div>
                  <div className="card-category"><img src="https://img.icons8.com/color/20/000000/beer.png"/>  {brewery.name}</div>
                </div>
              </Link>
            </div>
          )}
        </div>
      </div>
    </div>
    )
  }
}

export default Brewery;

Try this

sortAlpha() {
    const breweries = [...this.state.breweries].sort((a, b) => {
      if (a.name < b.name) return -1;
      if (a.name > b.name) return 1;
      return 0;
    });
    this.setState({ breweries: breweries });
  }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法对反应中的对象数组进行排序 的相关文章

随机推荐

  • Haskell 中具有运算符优先级和关联性的漂亮打印语法树

    是否有任何常用的方法 甚至是一个库 可以用 二元 运算符漂亮地打印 和解析 语法树 这些运算符具有关联性和优先级 以便结果使用尽可能少的括号 以命题演算的公式为例 data Formula Atom String Not Formula A
  • 如何使用 Tomcat 在其 URL 中隐藏应用程序上下文?

    我有许多应用程序在 Tomcat 中运行 每个人都有自己的背景 我使用 Apache HTTP Server 将它们全部连接到不同的域名 并且mod jk 请参阅此问题的更多详细信息 如何使用 mod jk 挂载上下文引用的 Tomcat
  • Typescript:获取未定义的值

    我好像有一个问题无法解决 我希望 dialogTitle 变量也与标题变量一起显示 startHour 和 startMinute 变量 然而 我似乎在标题后得到了标题和 未定义 两次 我应该怎么办 事件表单 component ts im
  • 在 MVC 5 的操作过滤器中调用异步方法

    我正在编写一个动作过滤器 继承自ActionFilterAttribute 它使用HttpClient将数据 POST 到外部服务器OnResultExecuted方法 HttpClient有方法PostAsync返回一个可等待的Task
  • Xamarin Forms CollectionView:无法为 SelectedItem 提供透明背景

    我正在使用 CollectionView 当用户选择一个项目时 我根本不希望 SelectedItem 显示背景颜色 我尝试按照 Xamarin 文档中的说明 通过使用 VisualStateManager 将 BackgroundColo
  • 如何用react-native绘制梯形/梯形?

    这是 id 处的 css 代码 效果很好 border bottom 100px solid 0000ff80 border right 50px solid transparent height 0 width 100px div div
  • Python - 属性错误“_io.TextIOWrapper”对象没有属性“open”

    我收到错误 File open classname txt a AttributeError io TextIOWrapper object has no attribute open 尝试打开文件时 我需要打开文件并将分数写入文件 这是代
  • R 中的数据操作:“X”必须是原子的

    我使用以下命令导入了一个在多列中包含标题和数字的文件 irs data lt read csv file 10incyallnoagi csv 我想将 1 列中的值除以另一列中的值 然后确定最高的 3 个值 salary var lt c
  • Google Orgchart 创造婚姻

    嗨 我正在使用Google Orgchart https developers google com chart interactive docs gallery orgchart hl da Example创建一个家谱 我将三个家庭组合在
  • 如何使用 PHP api 从 Dropbox 删除文件

    首先 我可以使用 PHP api 正确地从 Dropbox 上传和下载文件 这是我上传文件的方式 Upload files file fopen default png rb size filesize default png client
  • Rails - 使用布局对所有电子邮件使用相同的附件

    我可能遗漏了一些明显的东西 但我有一个徽标 我想将其包含在从我的应用程序发送的所有电子邮件中 我有一个用于所有这些邮件的主布局 我认为有一种方法可以使其保持干燥 而不必在每个邮件程序方法中添加代码行来附加文件 有人可以指出我正确的方向或纠正
  • 为什么在删除所有侦听器后我的 Node.js 进程没有终止?

    在下面的代码中 我为data的事件process stdin与once method console log Press Enter to allow process to terminate process stdin once data
  • 找不到 C/C++ IntelliJ IDEA 插件

    我正在尝试添加一个到IntelliJ IDEA 所以我去插件并搜索它但找不到它 他们是否删除了它并用新的 IDE cLion 替换了它 是不再支持还是什么 看起来您的 IntelliJ IDEA 版本比 C C 插件支持的版本新 如果你看一
  • 在每句之前打印项目符号 + 每句之后换行 SQL

    我有这样的文字 第一句 第二句 第三句 我希望它是 句子一 第二句 第三句 我想我可以替换 with char 10 char 13 但是我该如何处理子弹呢 如果手动打印 字符效果很好 我只是不知道如何为每个句子添加项目符号 包括第一个句子
  • Wicket 与 GWT - 需要建议

    我正在开发一个基于 Java EE 的 Web 应用程序 我们的时间非常有限 无法提出 alpha 版本并尝试决定要使用的 Web 框架 它必须是易于学习但功能强大的东西 由于开发需要时间 标准 JSP Servlet 在这里不是一个选择
  • 相当于 RecyclerView 中的 ListView.setEmptyView

    In RecyclerView 我想设置一个空视图 当适配器为空时显示 是否有相当于ListView setEmptyView http developer android com reference android widget Adap
  • javadoc -Xdoclint 不断标记我的(可选)匿名类,因为它显然没有注释

    我正在使用 javadoc 来记录我的公共枚举 我正在使用以下命令编译以下所有示例 javac Xdoclint all LetsLearnJavadocXdoclint java 如果我的枚举是这样的 它会生成一个 class 文件 而不
  • 抑制“对‘所有人’无能为力”

    我正在编写一个简短的 shell 脚本 它调用 make all 这并不重要 但如果是这种情况 我有没有办法可以抑制 对所有人无能为力 的消息 我希望找到一个 make 标志来抑制这种情况 不确定是否有 但是额外的一两行代码也可以工作 仅供
  • 如何将用户重定向到不同的服务器并包含 HTTP 基本身份验证凭据?

    我有一个 Web 应用程序 C ASP net 需要使用 HTTP 基本身份验证将用户传递到远程 Apache 服务器上的页面 我需要能够将用户名和密码传递到该服务器 以允许通过我的应用程序进行身份验证的用户无缝使用其他应用程序 而不会提示
  • 无法对反应中的对象数组进行排序

    我试图在按下按钮时按字母顺序对数组进行排序 但到目前为止我尝试的所有操作都失败了 当我尝试控制台记录某些内容并在控制台中打印时 按钮和功能起作用 我觉得我的排序功能是错误的 但我不知道该怎么办 我该如何修复这个问题才能正常工作 import