首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在nuxt中支持更改时如何更新组件

在nuxt中支持更改时如何更新组件
EN

Stack Overflow用户
提问于 2022-04-30 21:03:04
回答 1查看 617关注 0票数 0

我希望每次当道具在组件中发生变化时获取数据,并在不重新加载页面的情况下显示它。

此页/发票/index.vue

代码语言:javascript
运行
复制
<template>
<div>
 <b-table-column
     field="InvoiceNo"
     label="Invoice No"
     sortable
     v-slot="props"
     >
      <a @click="selectInvoice(props.row.id)">
         {{ props.row.invoiceNumber }}
      </a>
 </b-table-column>
<Invoice :invoiceId="selectedInvoice" />
</div>
</template>

<script>
import axios from "axios";
import Invoice from "../../../components/Invoice.vue";
export default {
  components: {
    Invoice,
  },
  data() {
    return {
      selectedInvoice: "",
   }
  },
methods: {
   selectInvoice(invoiceId) {
    this.selectedInvoice = invoiceId;
   },
}

}

</script>

这是components/Invoice.vue

代码语言:javascript
运行
复制
    <script>
import axios from "axios";
export default {
  props: ["invoiceId"],
  data() {
    return {
      invoiceData: "",
    };
  },

  watch: {
    invoiceId: function (newVal, oldVal) {
      this.fetchData(newVal)
    },
    deep: true,
    immediate: true,
  },

  methods: {
    async fetchData(invoiceId) {
      let { data: invoiceDetails } = await axios.get(
        `${process.env.backendapi}/invoice/byid?invoiceId=${invoiceId}`
      );
      return {
        invoiceData: invoiceDetails,
      };
    },
  },
};
</script>

当我选择/更改发票时,我可以看到每次使用所选的发票调用后端api,但是invoiceData始终是空的。返回的结果不会在invoiceData中更新

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-30 21:10:19

我认为您希望在fetchData方法中使用以下内容

代码语言:javascript
运行
复制
this.invoiceData = invoiceDetails

而不是

代码语言:javascript
运行
复制
return {}

只有已经存在的数据和获取vue/nuxt函数需要返回一个对象。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72072158

复制
相关文章

相似问题

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