javascript - vue 未在实例上定义,但在渲染期间被引用

标签 javascript vue.js

我正在尝试在 vue 中构建一个简单的应用程序,但出现错误。我的 onScroll 函数按预期运行,但是当我单击我的按钮组件时,我的 sayHello 函数返回错误

Property or method "sayHello" is not defined on the instance but referenced during render. Make sure to declare reactive data properties in the data option. (found in component )

Vue.component('test-item', {
    template: '<div><button v-on:click="sayHello()">Hello</button></div>'
});

var app = new Vue({
    el: '#app',
    data: {
        header: {
            brightness: 100
        }
    },
    methods: {
        sayHello: function() {
            console.log('Hello');
        },
        onScroll: function () {
            this.header.brightness = (100 - this.$el.scrollTop / 8);
        }
    }
});

我觉得答案很明显,但我尝试搜索但没有找到任何答案。任何帮助将不胜感激。

谢谢。

最佳答案

但是对于少数特定情况(主要是props),每个组件都是完全相互隔离的。分离数据、变量、函数等。这包括它们的方法。

因此,test-item 没有sayHello 方法。

关于javascript - vue 未在实例上定义,但在渲染期间被引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39864526/

相关文章:

javascript - 未收到POST参数 Swagger3.0/OpenAPI

javascript - 非 ES6 Javascript 中如何处理类扩展?

JavaScript Ajax 函数返回错误,状态代码为 'OK'

vue.js - VueJS 中更新的钩子(Hook)和观察者有什么区别?

javascript - Vue-chartjs:即使数据没有改变也重新渲染图表

javascript - axios 拦截器响应未定义

javascript - jQuery Select2 插件 : reset

javascript - Phonegap 打开表单提交到网络浏览器上的外部域

javascript - Firestore where 子句不满足条件。

javascript - 无法在使用 nuxtjs 的模块外部使用 import 语句