【问题标题】:Pass data from parent component to child of child in Vue js在Vue js中将数据从父组件传递给子组件
【发布时间】:2022-01-18 15:23:25
【问题描述】:

我正在寻找一种将数据从父组件传递到子组件的子组件的方法。 我知道我可以使用道具来做到这一点,就像在这个线程Vue JS Pass Data From Parent To Child Of Child Of Child

但我只让它为“下一个”子组件工作,而我在第二个子组件上卡住了。

我的父组件:

<ResultBar :carbondata="realCarbonValues" />

data() {
return {
    realCarbonValues: {
        slabs: 20,
        beams: 0, 
        columns: 0,
        foundation: 0,
        core: 0
    }
};

我的子组件:

props: {
    carbondata:Object
},


console.log(this.carbondata.slabs)

现在,我可以使用子组件在控制台中记录数据

但是我必须在下一个子组件中做什么才能正确传递数据?

【问题讨论】:

    标签: javascript html vue.js web-applications


    【解决方案1】:

    根据您要执行的操作,您可以再次将其作为道具直接传递。

    家长:

    &lt;Child :prop-i-wanna-pass-deeply="something" /&gt;

    孩子:

    &lt;GrandChild :props-i-wanna-pass-deeply-again="propsIWannaPassDeeply" /&gt;

    孙子:

    &lt;div&gt;{{ propsIWannaPassDeeplyAgain }} is now here&lt;/div&gt;


    或者只使用provideinject 来避免螺旋钻。

    见:https://vuejs.org/v2/api/#provide-inject

    阅读有关提供/注入反应性的说明

    家长:

    <Child /> <!-- no need to pass the prop -->
    
    provide() {
      return {
        something: "fooAbc",
      }
    }
    

    孩子:

    &lt;GrandChild /&gt;

    孙子:

    <div>{{ something }}</div>
    
    inject: ['something']
    
    

    【讨论】:

    • 非常感谢,感谢您将其称为“IWannaPassDeeply”;)好的,我明白了,我只需要更深入地传递它,但我的问题是如何在这种情况下为如果我想传递一个对象而不仅仅是一个变量,子组件和孙子组件?
    • 与为任何组件定义 props 的方式相同,因为只有一种定义 props 的方法。如果你想直接从模板传递一个对象文字然后做&lt;Child :prop="{ a: 1, b: 2, c: 3 }" /&gt;
    猜你喜欢
    • 2020-09-25
    • 2017-10-20
    • 2021-08-20
    • 2016-09-24
    • 2021-12-27
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    相关资源
    最近更新 更多