【发布时间】:2020-02-04 07:49:06
【问题描述】:
将函数绑定到按钮简单明了:
<button on:click={handleClick}>
Clicks are handled by the handleClick function!
</button>
但是当我这样做时,我看不到将参数(参数)传递给函数的方法:
<button on:click={handleClick("parameter1")}>
Oh no!
</button>
该函数在页面加载时被调用,并且永远不会再次调用。
是否可以将参数传递给从on:click{} 调用的函数?
**编辑:**
我刚刚找到了一个 hacky 方法来做到这一点。从内联处理程序调用函数有效。
<button on:click={() => handleClick("parameter1")}>
It works...
</button>
【问题讨论】:
-
即使是文档也没有明确提及。但是,是的,我认为现在就是这样。直到他们想出不同的解决方案。
-
这不是 hack,它是它的工作原理。教程svelte.dev/tutorial/inline-handlers中明确提及
-
感谢您的 cmets!这种“hacky 方式”毕竟不是那么糟糕,但我敢说文档和教程对此并不是非常明确的。不过,也许只有我一个人。
-
对于它的价值,
on:click{() => clickHandler(param)}的原因是,正如 Rich 上面所说,“它是如何工作的”,因为需要将 reference 传递给需要的函数被执行。通过调用on:click{clickHandler(param)},您将立即执行该函数。这不是你想要的。