可选地向组件传递操作

Passing action to a component optionally

我了解到可以将操作传递给组件:。现在我想知道是否可以选择通过一个。

我正在构建一个可重复使用的 <Wrapper> 组件,无论是否通过操作,我都想使用它。如果我尝试上面链接的答案,但不添加 action={myAction}(因为我不想要任何),我会收到两个错误:(1) [HMR][Svelte] – “Unrecoverable error in : next update将触发完全重新加载”,(2) 未处理的 Promise Rejection:TypeError:null 不是对象(评估 'ctx[2].call')。请注意,当我添加 action={myAction} 时,一切都按预期工作。

您可以只设置一个不执行任何操作的默认值:

<script>
  export let action = () => {};
  export let actionParams = undefined;
</script>

<div use:action={actionParams} >
    <slot/>
</div>

REPL