为啥通过 Vue-router 传递数据返回“[object Object]”?

Posted

技术标签:

【中文标题】为啥通过 Vue-router 传递数据返回“[object Object]”?【英文标题】:Why passing data through Vue-router returning "[object Object]"?为什么通过 Vue-router 传递数据返回“[object Object]”? 【发布时间】:2021-10-17 09:23:14 【问题描述】:

我要做的是通过路由器将一些数据从一个组件传递到另一个组件(我正在使用 Vue-Router-4 和 Vue 3.0)。但是我得到的数据只是“[object Object]”而不是实际值。这就是我所做的。在发送数据的组件内部我有这个功能

goToQuestions() 
  this.$router.push(
    name: "QuestionsPage",
    params: 
      data: this.questions
    ,
  );
,

在我的 index.js 里面我有这个


  path: "/questions-page",
  name: "QuestionsPage",
  props: true,
  component: () =>
    import ('@/views/QuestionsPage.vue')
,

然后在接收器组件内部我有这个 sn-p

props: ["data"],
  mounted() 
    console.log("data coming from the router", this.data);
  ,

【问题讨论】:

我已经尝试循环遍历数据,我什至使用了 JSON.stringfy() 但显然它们都没有工作 【参考方案1】:

我假设你 this.questions 是数组或对象。

建议不要使用路由器发送对象和数组。而是发送 id 。 并在接收方页面上使用 id 获取数据。

即使你想传递对象,你也可以试试这个:

添加路由时,使用props的Function模式,使其有一个默认的属性user,它会添加route.params作为props。


    path: '/questions',
    name: 'questions',
    component: QuestionsComponent,
    props: (route) => (
        user: userData,
        ...route.params
    )

用它来推进你的路线

self.$router.push(
    name: 'questions',
    params: 
        data: this.questions
    
)

【讨论】:

以上是关于为啥通过 Vue-router 传递数据返回“[object Object]”?的主要内容,如果未能解决你的问题,请参考以下文章

vue-router通过query传递参数遇到浏览器刷新时候的坑!

为啥在通过 Firebase 身份验证传递 id 令牌时,此 CORS 身份验证的 Google Cloud 函数会返回 403?

Vue系列:通过vue-router如何传递参数

Vue-router4 - 使用 <router-link :to> 传递对象不会传递动态数据

为啥将 1 传递给日期时返回“31-12-1899”?

为啥 vue-router 不起作用?我的项目在 GitHub