【问题标题】:[Vue warn]: Property or method "trendingMovies" is not defined on the instance[Vue 警告]:实例上未定义属性或方法“trendingMovies”
【发布时间】:2020-09-24 03:02:38
【问题描述】:

有谁知道这个错误的原因或原因是什么?

我正在尝试通过回收轮播文件将数据发送到另一个视图以调用轮播

在我的家中,我正在调用此数据,但它显示了我已经提到的错误。

<app-carousel v-if="trendingSeries" :title="$t('home.new_tv_series')" :view-all-url="SeriesUrl" :data="trendingSeries"></app-carousel>
<app-carousel v-if="trendingMovies" :title="$t('home.new_movies')" :view-all-url="MoviesUrl" :data="trendingMovies"></app-carousel>

在导出默认值中我有这个:

mounted() {
    this.$store.dispatch("GET_HOME_LIST");
},

computed: {
  ...mapState({
    data: state => state.home.data
  }),

  MoviesUrl() {
    return { name: 'movies' };
  },

  SeriesUrl() {
    return { name: 'series' };
  },
},

async asyncData ({ error }) {
  try {
    const trendingMovies = await this.treding('movies');
    const trendingSeries = await this.treding('series');

    return { trendingMovies, trendingSeries};
  } catch {
    error({ statusCode: 504, message: 'Data not available' });
  }
},

methods: {
  async treding(media) {
    let { data } = await axios.get('/api/v1/get/type/' + media);
    return data.list;
  }
}

当我放入挂载的调用类时,如果它在控制台中打印出我想要的内容。

mounted() {
  this.treding('movies');
},

我实际收到的是稍后显示的字符串。

如果您能帮助我解决这个问题,我将非常感激,我正在寻找一种方法来解决我开始奖励但似乎有必要以另一种方式来解决的问题。

【问题讨论】:

  • 问题中没有足够的信息......哪一行代码引发了错误?如果是console.log,那么this.$store.dispatch("GET_TREDING_LIST", "movies"); 返回什么?那个 dispatch 触发的 vuex action 会返回什么?
  • 在 2 个常量中,它将我标记为错误。你得到的是字符串。控制台日志不是标记错误的日志。
  • 此问题的代码中没有任何内容会引发该错误。只有当您尝试在模板中使用未在 datacomputed 中定义的属性并且您的模板未使用 trendingMovies 时,您才会得到此信息
  • 我不确定dispatch 是你真正想要做的......这真的很奇怪,错误是由const trendingMovies 引起的
  • 假设您的 Vuex 操作返回承诺,您似乎还缺少一些 await 令牌

标签: javascript vue.js nuxt.js


【解决方案1】:

这不是使用asyncData的方式

您想为该特定页面获取 SEO 提升,但如果您调用不返回任何内容的方法,您将无法获得它。

您也使用async,但我没有看到任何await。无论如何试试这个

async asyncData ({ error }) {
  try {
    const trendingMovies = await this.treding('movies');
    const trendingSeries = await this.treding('series');

    return { trendingMovies, trendingSeries};
  } catch {
    error({ statusCode: 504, message: 'Data not available' });
  }
},

methods: {
  async treding(media) {
    let { data } = await axios.get('/api/v1/get/type/' + media);
    return data.list;
  }
}

【讨论】:

  • 感谢您的回复,朋友。朋友,我总是遇到同样的错误。
  • 我总是遇到同样的错误。我看看它从哪一边出来,我意识到它在app-carouselv-if ="trendingSeries" 中。
  • 我总是收到这种错误:[Vue warn]: Property or method "trendingMovies" is not defined on the instance but referenced during render.
  • 这就是我不明白您将trendingMovies 视为未定义并向我们展示trendingSeries 您确定错误发生在该行吗?
  • 发生的情况是有两个app-carousel。一个通过系列,另一个通过电影。但是它们会产生相同的错误,但只有 trendingMovies 更改
猜你喜欢
  • 1970-01-01
  • 2021-04-20
  • 2021-07-17
  • 2020-02-03
  • 2019-02-20
  • 2021-11-27
  • 2020-06-22
相关资源
最近更新 更多