Svelte中on:click调用函数报错:'question1'未定义求助
解决Svelte中函数未定义的报错问题
这个报错的核心原因是你在模板里调用的question1函数没有在组件的<script>块中正确定义,Svelte误将它识别成了需要外部传入的props属性,所以才提示你用export let声明。
正确的实现步骤
在组件的
<script>标签内定义函数
把question1函数写在<script>块里,而不是当成props或者直接写在模板的事件属性中:<script> function question1() { // 这里编写你修改元素innerHTML的逻辑 const targetElements = document.querySelectorAll('.target-class'); targetElements.forEach(el => { el.innerHTML = '你想要设置的内容'; }); } </script>使用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
相关产品推荐
相关产品推荐

