【问题标题】:Vuejs call other component's method with parameterVuejs用参数调用其他组件的方法
【发布时间】:2019-03-29 14:03:36
【问题描述】:

我有两个组件,第一个用于上传文件,第二个用于显示文件。在我的上传组件中,我想调用预览组件并添加一个参数,以便预览组件中的方法使用在上传组件中创建的值。

到目前为止,我已经这样做了:

上传组件.vue

<template>
    …
    <button @click="upload"></button>
    <preview-component :url="this.location"></preview-component>
</template >

<script>
import PreviewComponent from '@/js/components/PreviewComponent';

export default {
    components: {
        'preview-component': PreviewComponent
    },

    props: ['url'],

    data () {
        return {
            // ...
            location: ''
        }
    },

    methods: {
        upload() {
            // ... upload stuff then update the global var location
            this.location = response.data.location;
        },
    }

}
</script>

这是我的预览组件:

<template>
    <div id="body">
        ///...
    </div>
</template>

<script>
export default {
    props: ['url'],

    methods: {
        loadPdf (url) {
            //
        },
    }    
}
</script>

到目前为止,我收到了 url 未定义的错误,所以它实际上并没有将 url 从 UploadCOmponent 发送到 PreviewComponent,我该如何发送它?

【问题讨论】:

  • 父组件通过:url="location"将prop传递给子组件,并在this.url方法中的子组件访问prop

标签: javascript vue.js vue-component


【解决方案1】:

UploadComponent 的模板中有一个忍者 this

应该是&lt;preview-component :url="location"&gt;&lt;/preview-component&gt;

【讨论】:

  • 您好,谢谢,但我仍然收到此错误app.js:7989 [Vue warn]: Error in v-on handler: "Error: Invalid parameter object: need either .data, .range or .url" app.js:9252 Error: Invalid parameter object: need either .data, .range or .url
  • 它似乎与您正在使用的外部组件之一有关。与 Vue 无关
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-21
  • 1970-01-01
  • 1970-01-01
  • 2018-04-17
  • 2017-04-09
  • 1970-01-01
相关资源
最近更新 更多