首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回错误顺序的Axios异步函数

返回错误顺序的Axios异步函数
EN

Stack Overflow用户
提问于 2021-10-22 06:34:15
回答 2查看 138关注 0票数 1

当通过getProvinces()func initProvinces()上使用异步函数axios.get时,不按字母顺序检索provinceCities,这与func initProvinces()中的顺序不同。

如何更改getProvinces()以按字母顺序返回provinceCities

使用Axios使用getProvinces():获取数据

代码语言:javascript
复制
    export async function getProvinces() {
      const result = await axios.get(
        `${process.env.NEXT_PUBLIC_API_ENDPOINT}/info/provinces`
      );
    
      return result.data;
    }

带有数据的Golang函数initProvinces():

代码语言:javascript
复制
func initProvinces() {

    provinceCities = make(map[string][]string)

    //Anhui
    provinceCities["安徽省"] = []string{"安庆市", "蚌埠市", "亳州市", "巢湖市", "池州市", "滁州市", "阜阳市", "广德市", "合肥市", "淮北市", "淮南市", "黄山市", "界首市", "六安市", "马鞍山市", "明光市", "宁国市", "潜山市", "宿州市", "天长市", "桐城市", "铜陵市", "芜湖市", "无为市", "宣城市"}

    //Beijing
    provinceCities["北京市"] = []string{"北京市"}
...
}

省的名单要大得多,我刚把前两个省列了出来。

console.log of the data:

代码语言:javascript
复制
(33) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
0: {province: '黑龙江省', cities: Array(33), autoPopulate: false}
1: {province: '天津市', cities: Array(1), autoPopulate: true}

比较而言,索引0是'黑龙江省',而它应该是"安徽省“。

EN

回答 2

Stack Overflow用户

发布于 2021-10-22 15:36:41

根据我可以告诉您的,有几个选项可以对数据进行排序:

  • 返回已从API排序的数据。
  • 接收到UI代码后,在本地对其进行排序

我不熟悉GoLang与API端的排序(虽然我假设排序仍然是一个琐碎的调用),但这里有一个用javascript对应用程序端的响应数据进行排序的示例。

使用自定义比较器来使用province比较String.prototype.localeCompare属性。请注意,您可能还需要指定localesoptions参数来自定义行为以适应您使用的语言。

代码语言:javascript
复制
const compareByProvince = (a, b) => a.province.localeCompare(b.province);

export async function getProvinces() {
  const result = await axios.get(
    `${process.env.NEXT_PUBLIC_API_ENDPOINT}/info/provinces`
  );

  return result.data.sort(compareByProvince);
}
票数 0
EN

Stack Overflow用户

发布于 2021-10-23 16:37:49

前端解决方案:当将数据分配给要传递给provinces.jsx文件的支柱时,我们已经使用.map()将相关信息输入组件的返回。

因此,在映射信息之前,我使用.sort()对信息进行排序。它在映射时不起作用,然后对它进行排序。

代码的最后一行如下所示:

代码语言:javascript
复制
const PROVINCE_OPTIONS = provinces.sort((x,y)=>x.province.localeCompare(y.province, 'zh-CN')).map((item) => item.province)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69672370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档