我是VueJS的新手.有一个父组件,数据从该组件传递给子组件和孙组件.

我的子元素组件是这样的,

B.vue

import C from './c.vue'

export default{

    props:['info'],

    components:{
        'c': C
    },
    
    created: function(){
      this.getInfo();
    },

    methods: {
        getInfo: function(){
            console.log("Printing inside get method", this.info);
        }
    }
}
<template>
  <div>
    <c :info="info"></c>
  </div>
</template>

当我看到控制台时,我看到一个这样打印的数组,

[__ob__: Observer] array

当我try 像这样访问数组元素info[0]时,控制台显示undefined.我无法访问数组的元素.有人能帮帮我吗?谢谢

推荐答案

<template>
  <div>
    <c :info="info"></c>
  </div>
</template>

:info="info"将把外部组件info属性传递给c组件.如果该外部组件没有属性info,那么它将导致您现在可以看到的undefined(根据注释).

如果您只是想测试行为,而您的目标是将字符串info传递到组件c中,那么您可以通过如下方式将其作为字符串传递:

<template>
  <div>
    <c :info="'info'"></c>
  </div>
</template>

或者没有::

<template>
  <div>
    <c info="info"></c>
  </div>
</template>

为什么?因为:v-bind:的简写,它寻找javascript对象,而:info="info"等于:info=info,所以你实际上想要用:info="'info'",因为这等于:info='info'.

您可以在Vue的"props 文档"部分中阅读更多关于这一点的信息.js:https://vuejs.org/v2/guide/components-props.html

如果在外部组件中设置了info属性,请告诉我们如何进一步帮助您.

Vue.js相关问答推荐

将 html 文件移出 dist vite 中的 src 文件夹

更新 Shopware 管理 CMS 组件中的编辑器视图

如何容器化 Vue.js 应用程序?

如何将 vuejs 项目部署到 heroku

Vue.js 中有没有类似Jquery $(document).ready的功能?

在基于 TypeScript 的 Vue 中将 vuex 状态和Mutations绑定到复选框组件属性

如何为 Vue 项目设置 lint-staged?

如何根据生产或开发模式读取不同的 .env 文件?

Vue-Router 抽象父路由

在 v-for 的情况下如何从 v-model 输入更新 Vuex 存储

取消选中单选按钮

阻止 Vue 积极重用 dom 元素

Vue代理设置不起作用

删除一行后刷新 Bootstrap-Vue 表

为什么 Vue.js 使用 VDOM?

在找不到图像源时设置替代图像

Vuex:无法读取未定义的属性'$store'

使用 Vue 在单个文件组件中调用渲染方法

如何在 Promise 回调中更新 Vue 应用程序或组件的属性?

使用 vue.js 获取调用元素