当前位置: 首页 > 知识库问答 >
问题:

javascript - vue路由传参传接口中的一个值,怎样传单独的不是把接口中的这个值全部传过去了?

华星驰
2023-07-13

只需要接口中的一个code值,想要把这个值传到另一个组件里面作为接口参数传给后端,在home组件中有一个路由跳转到appointment了,我就把这个code值作为路由参数传过去了,这样做合理吗?
image.png
下面的图是目录结构
image.png

院区的接口
async courtyard () {
      const data = await homeCourtyard({channel: 1})
      if (data.state === 1) {
        this.courtyardData = data.data
        this.yqCode = this.courtyardData.map((item) => {
          return item.code
        })
        console.log(this.yqCode)
      } else {
        this.courtyardData = []
      }
    },
typePage () {
      this.$router.push({ path: '/appointment', query: {res: this.yqCode} })
    }

这样传完后,在appointment组件接收后作为接口参数传过去,就变成了三个了

async getDeptCateList () {
      const res = await getDeptCate({channel: 1, scl_id: this.$route.query.res})
      console.log(res)
    }

image.png
这样虽然能获取到接口数据,总感觉不对劲,请问我应该怎么修改呢?而且为啥接口传参后scl_id参数名后面会有一个数组,这个应该怎么去掉?
三个院区,三个code值
image.png
home组件传code值
image.png
appointement组件接收值,作为接口的参数,并把接口赋值给下拉框做渲染
image.png

共有4个答案

百里默
2023-07-13

你用map获取了code,你的参数就是一个数组了,转一下json字符串。需要注意一下的是,当你的数组过长的时候,url参数有字符串限制

柴嘉禧
2023-07-13

参数this.yqCode是一个数组,你放在url上传参是不规范的,因为url上的参数只能是string
建议的话:将yqCode用join切割成字符串传过去,然后接收时用split转换回来

史昱
2023-07-13

你传递的

scl_id: this.$route.query.res

来自:

this.yqCode = this.courtyardData.map((item) => {
  return item.code
})

不就是一个数组吗,所以就会带数组框了
我觉得你可以用JSON.stringify()先把数组里的内容转成字符串,
在接收页面JSON.parse()转回来就可以了

蔡鸿骞
2023-07-13
<template>
    <div>
         <div @click="ypePage(0)">总院区</div>
         <div @click="ypePage(1)">东院区</div>
         <div @click="ypePage(2)">医院</div>
    </div>
</template>
ypePage (index) {
  this.$router.push({ path: '/appointment', query: {res: this.yqCode[index]} })
}
 类似资料:
  • 接口传参的时候需要给后端传的参数是数组 大概是这样的: 在这弹窗里面,点击弹窗下面的保存按钮调接口,需要把每一行的单位代码和总人口作为参数传过去,还要判断一下id,这条数据有id的话就传id,没有id的话就不传id 只传单位代码和总人口 请问接口传参应该怎么传多维数组,把每一行的单位代码和总人口传给后端,还有判断id应该怎么去操作呢?

  • 问题内容: 短 以下代码不能完全满足您的期望:https : //play.golang.org/p/sO4w4I_Lle 我以为我像往常一样弄乱了一些指针/引用的东西,但是我希望我的… …和… …以相同的方式运行(例如,更新作为第二个参数传递的引用)。 长 上面的示例是一个没有太多意义的最小复制器。这是为了使其能够在操场上工作。但是,一个不那么有意义的最小示例是: 想法是将YAML解组为(而不是

  • 如果函数接口有指针参数,既可以把指针所指向的数据传给函数使用(称为传入参数),也可以由函数填充指针所指的内存空间,传回给调用者使用(称为传出参数),例如strcpy的函数原型为 char *strcpy(char *dest, const char *src); 其中src参数是传入参数,dest参数是传出参数。有些函数的指针参数同时担当了这两种角色,如select函数。其函数原型为: int

  • 第三方平台接收参数是bigint,但nodejs这边拿到怎么才不让它自动转换而是原本数据传输呢?

  • 我按上面的传值,为什么目标页都拿不到呢?这可能是哪里问题? 而且跳之前明明有值: 可在目标页确都是空。

  • 问题内容: 假设我有这个功能: 我想这样称呼它: 当然,不能用这种方法来完成,因为Postgres试图用该名称和三个不存在的参数来查找函数。 我试图用引号引起来,但在这种情况下,参数解释错误: data1’,’data2’,’data3 ,就像一个字符串一样。 有没有一种方法可以在参数中放置多个值,以便IN子句可以识别它? 问题答案: 您的函数将不会被创建。之后是句法废话。 无论哪种方式,带有 参