App.vue props传值不成功

发布于 2022-09-12 03:45:32 字数 1721 浏览 23 评论 0

问题描述

props传值不成功

问题出现的环境背景及自己尝试过哪些方法

新手,使用的是Vue Material Dashboard.
https://github.com/creativeti...

涉及的文件如下。

├── App.vue
├── components
│   ├── Tables
│   │   ├── OrderedTable.vue
│   │   └── SimpleTable.vue
├── pages
│   ├── Dashboard.vue
│   ├── Icons.vue
  1. 我在Dashboard.vue中使用了axios,用props向SimpleTable.vue和OrderedTable.vue传值成功。
  2. 但是每次我点击Dashboard时axios都会发送一次请求,这不是我希望的。
  3. 所以我把axios移到了App.vue,希望只在第一次加载页面时发送axios请求。尝试用props传值给pages/Dashboard.vue,但是传值始终不成功。

相关代码

App.vue template

<template>
  <router-view :results="results"></router-view>
</template>

App.vue script

<script>
import Dashboard from "@/pages/Dashboard.vue";
axios.defaults.withCredentials = true;

const url = "https://123456.com";

export default {
    data() {
    return {
      results: []
    };
  },
  components: {
    Dashboard
  },
  mounted() {
    axios
      .post(url, {
            method: "READ"
      })
      .then(response => {
        this.results = response.data
        console.log(this.results)
      });
  }
};
</script>

Dashboard.vue script

<script>
import { SimpleTable, OrderedTable } from "@/components";

export default {
  name: "Dashboard",
  props: ["results"],
    data: () => ({
    test: []
  }),
  components: {
    OrderedTable,
    SimpleTable
  },
    watch: {
    results: function(value) {
      this.test = value;
      console.log(this.test);
    }
  }
};
</script>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

优雅的叶子 2022-09-19 03:45:32

路由配置有 props: true 吗?

http://jsrun.net/QAvKp/edit

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文