【问题标题】:Vue JS composition API can't access arrayVue JS组合API无法访问数组
【发布时间】:2022-01-13 10:55:23
【问题描述】:

我目前正在尝试学习 Vue JS,但从未接触过 Javascript。

所有的括号、箭头等都快把我逼疯了。

使用 Composition API,我遇到了一个无法通过 google 成功搜索的问题。

这是有效的:

setup() {
    const store = useStore ();
    const packagingdata = ref ([]);
    const loadpackagingdata = async () => {
      await store.dispatch (Actions.LOADPACKAGING_LIST, 10);
      packagingdata.value = store.getters.getPackagingData;

return {
      packagingdata,
}

我可以访问{{packagingdata}}。其中包含一个数组。

{{Packagingdata.products}} 确实有效 但是{{packagingdata.products [0]}} 不起作用。

但是当我像这样将它添加到 setup() 中时:

setup() {
        const store = useStore ();
        const packagingdata = ref ([]);
        const getProducts = ref ([]);
        const loadpackagingdata = async () => {
            await store.dispatch (Actions.LOADPACKAGING_LIST, 10);
            packagingdata.value = store.getters.getPackagingData;
            getProducts.value = store.getters.getProducts;      
        };
    return {
        packagingdata,
        getProducts
    }

然后{{ getProducts }}返回我想要的,即使getter函数只是这样:

get getAddress() {
    return this.packagingdata["products"][0];
  }

那里发生了什么? 我究竟做错了什么?我宁愿不为每个计算值创建 ref() 和 getterfunction。 计算的解决方案是什么?

最好的问候

【问题讨论】:

  • 在组件中,我们通常为您要使用的每个 getter 创建一个计算对象。
  • 我又试了一次,可能语法正确 const productdata = computed(() => { return store.getters.getProduct; });但是在加载我的打包数据之前计算的火灾,尽管我在打包数据加载操作上使用了同步/等待。这就是为什么我得到“对象中不存在键”的错误。
  • 如果您认真学习 vue.js(或前端开发),我强烈建议您应该从学习基础知识(html、css 和 javascript)开始。相信我,花时间学习基础知识会对您有很大帮助。

标签: vue.js vuex metronic


【解决方案1】:

我找到了两种避免错误的方法。

  1. 在模板中添加 v-if="mygetter.length"
  2. 在getter中检查变量是否设置,否则返回false

这两种方法都可以防止在加载页面时已经发生的错误 [0] 找不到

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-04
    • 2020-05-28
    • 2017-06-28
    • 2018-05-02
    • 2020-08-22
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多