Svelte的action怎么传多个参数?
我在用Svelte写一个拖拽组件,想通过action来绑定mousedown事件,但发现action只能接收一个参数。我试过把多个值包成对象传进去,结果在action里解构的时候老是报错,说undefined。
比如下面这样写:
function draggable(node, { startX, startY }) {
console.log(startX, startY);
}
// 在组件里用
use:draggable={{ startX: 100, startY: 200 }}
但控制台一直提示startX是undefined,是我写法有问题吗?还是Svelte的action根本不支持传对象?
萌新.红芹
Lv1
你把参数包成对象的思路是对的,但写法有点小问题。在组件里用的时候要这样写:use:draggable={{startX: 100, startY: 200}},注意等号两边不要有空格。另外在action函数里解构前先检查一下是不是undefined,差不多就行:
点赞
2026-03-28 09:01