You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Svelte中on:click调用函数报错:'question1'未定义求助

解决Svelte中函数未定义的报错问题

这个报错的核心原因是你在模板里调用的question1函数没有在组件的<script>块中正确定义,Svelte误将它识别成了需要外部传入的props属性,所以才提示你用export let声明。

正确的实现步骤

  1. 在组件的<script>标签内定义函数
    把question1函数写在<script>块里,而不是当成props或者直接写在模板的事件属性中:

    <script>
    function question1() {
      // 这里编写你修改元素innerHTML的逻辑
      const targetElements = document.querySelectorAll('.target-class');
      targetElements.forEach(el => {
        el.innerHTML = '你想要设置的内容';
      });
    }
    </script>
    
  2. 使用Svelte的事件绑定语法调用函数
    模板里的按钮要通过on:click绑定函数,而不是用原生的onclick属性:

    <button on:click={question1}>触发函数</button>
    

更符合Svelte理念的写法

Svelte推荐用响应式变量控制内容,尽量避免直接操作DOM(比如修改innerHTML),举个例子:

<script>
let displayContent = '初始文本';

function question1() {
  displayContent = '修改后的文本';
}
</script>

<!-- 用响应式变量渲染内容,不需要手动操作DOM -->
<p>{displayContent}</p>
<button on:click={question1}>修改内容</button>

内容的提问来源于stack exchange,提问作者Beetle_Soft

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:15:42