Property or method “btn“ is not defined on the instance but referenced during render. 报错原因及解决措施

文章描述了一个在Vue组件中遇到的警告,即属性或方法“btn”未在实例上定义。开发者在模板中的点击事件中引用了这个方法,但实际在methods中拼写错误地写成了“bth”。修正这个问题只需将methods中的函数名从“bth”改为“btn”。这是一个关于前端开发中常见的JavaScript拼写错误和调试经验的总结。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 [Vue warn]: Property or method "btn" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property.

报错原因:属性或方法“btn”未在实例上定义,但在渲染过程中被引用。通过初始化该属性,确保该属性在数据选项中或对于基于类的组件是被动的。一般出现这种情况通常是方法未在methods中定义,或者定义了但是拼写错误,检查拼写。

<template>
  <footer class="footer" v-if="flag">
    <ul class="filters">
      <li>
        <a
          :class="{ selected: isSel == 'all' }"
          href="javascript:;"
          @click="btn('all')"
          >全部</a
        >
      </li>
      <li>
        <a
          :class="{ selected: isSel == 'no' }"
          href="javascript:;"
          @click="btn('no')"
          >未完成</a
        >
      </li>
      <li>
        <a
          :class="{ selected: isSel == 'yes' }"
          href="javascript:;"
          @click="btn('yes')"
          >已完成</a
        >
      </li>
    </ul>
  </footer>
</template>
<script>
export default {
  props: ["flag", "list"],
  data() {
    return {
      isSel: "all",
    };
  },
  methods: {
    bth(num) {
      this.isSel = num;
      console.log(num);
    },
  },
};
</script>

 解决方式:找了半天错误,发现我把btn这个函数写成了bth!

救命!家人们!太粗心了!这个错误总结下!下次不能再犯了!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奶粉罐没粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值