" + "
  • " + "
  • " + "
  • \[Vue警告\]:属性或方法未在实例上定义,但在渲染期间被引用

    JavaScript

    小宇宙猴子

    2020-03-10

    var MainTable = Vue.extend({
      template: "<ul>" +
        "<li v-for='(set,index) in settings'>" +
        "{{index}}) " +
        "{{set.title}}" +
        "<button @click='changeSetting(index)'> Info </button>" +
        "</li>" +
        "</ul>",
      data: function() {
        return data;
      }
    });
    
    Vue.component("main-table", MainTable);
    
    data.settingsSelected = {};
    var app = new Vue({
      el: "#settings",
      data: data,
      methods: {
        changeSetting: function(index) {
          data.settingsSelected = data.settings[index];
        }
      }
    });
    

    使用上面的代码,单击按钮时会发生以下错误。

    [Vue警告]:属性或方法“ changeSetting”未在实例上定义,但在渲染期间被引用。确保在data选项中声明反应性数据属性。(位于中<MainTable>

    第490篇《\[Vue警告\]:属性或方法未在实例上定义,但在渲染期间被引用》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

    4个回答
    猿飞云斯丁 2020.03.10

    同样,如果有人像我一样挣扎,请注意,方法是区分大小写的词:

    <template>
        <span>{{name}}</span>
    </template>
    
    <script>
    export default {
      name: "MyComponent",
      Methods: {
          name() {return '';}
      }
    </script>
    

    “方法”应该是“方法”

    樱小卤蛋 2020.03.10

    如果有人遇到与我同样的傻问题,请确保您的组件具有正确拼写的data属性。

    <template>
        <span>{{name}}</span>
    </template>
    
    <script>
    export default {
      name: "MyComponent",
      date() {
        return {
          name: []
        };
      }
    </script>
    

    注意我输入了date()应该是data()

    Eva蛋蛋番长 2020.03.10

    就我而言,原因是,我只忘记了结帐

    </script>
    

    标签。

    但这导致了相同的错误消息。

    番长Harry 2020.03.10

    这很可能是保留的vuejs变量的拼写错误。我到达这里是因为我拼写错误computed:并且vuejs无法识别我的计算出的属性变量。因此,如果您遇到此类错误,请先检查拼写!

    问题类别

    JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android