如何在router.push()(Vue.js)中将参数从一个组件传递到另一个组件?

问题描述 投票:0回答:1

我正在实现一个功能,用户单击编辑按钮(位于行内),该行的所有详细信息都应传递给表单组件,在表单组件中,我应从参数中获取这些字段的默认值。我不确定如何执行此操作...有人可以建议解决方案吗?

----------inside table component------------------

edit_row(id){
      // alert("deleting row " + id);
      var d_fname = this.users[id].fname;
      var d_lname = this.users[id].lname;
      var d_tech = this.users[id].tech;
      this.$router.push({name:  'form/', params: {d_fname, d_lname, d_tech}});
      // this.$router.push({name:'/form1',  params:{d_fname,  d_lname,  d_tech}});
    }


----------------inside form component------------------------

<template>
  <form id="form">
    <h4>Personal Information</h4>
    <br />
    <input type="text" placeholder="First Name" v-model="fname" />
    <p>{{user_info}}</p>
    <br />
    <input type="text" placeholder="Last Name" v-model="lname" />
    <br />
    <input type="text" placeholder="Technologies" v-model="tech" />
    <br />
    <button type="button" value="submit" @click="submit_info()">Submit</button>
  </form>
</template>

<script>
export default {
  name: "form1",
  props:["d_fname", "d_lname", "d_tech"],
  data() {
    return {
        fname: "",
        lname: "",
        tech: ""
    };
  }
}
javascript vue.js parameter-passing vue-router
1个回答
0
投票

您需要在params对象中传递参数作为键值,并且还需要在路由声明时将props设置为true。

{path: "form/", name:"form", component: FormComponent,  props: true}

您应该参考此。

Passing props with programmatic navigation Vue.js

© www.soinside.com 2019 - 2024. All rights reserved.