我试图在按下按钮时按字母顺序对数组进行排序,但到目前为止我尝试的所有操作都失败了。当我尝试控制台记录某些内容并在控制台中打印时,按钮和功能起作用。我觉得我的排序功能有问题,但我不确定该怎么做。我该如何解决这个问题才能正常工作?
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( Brewery Find the best brewery in town
this.sortAlpha()}>Sort Alphabetically
{breweries.slice(0,10).map((brewery, i) =>
{brewery.brewery_type} {brewery.city}, {brewery.state}
{brewery.name}
)}
) } } export default Brewery;
thử cái này
sortAlpha() { const breweries = [...this.state.breweries].sort((a, b) => { if (a.name < b.name) return -1; if (a.name > b.name) return 1; trả về 0; }); this.setState({ breweries: breweries }); }
Tôi là một lập trình viên xuất sắc, rất giỏi!