Svelte - 将 use:action 传递给子组件
Svelte - pass use:action to component child
我是 Svelte 的新手,很可能我在这里遗漏了一些东西。
我正在使用 sveltestrap and svelte-spa-router。
当我尝试创建 <Button>
(来自 sveltestrap)并使用 link
操作(来自 svelte-spa-router)时,如下所示:
<script>
import { Button } from 'sveltestrap';
import {link} from 'svelte-spa-router';
let myLink = '/foo/bar';
</script>
<Button use:link={myLink}>
Click here
</Button>
我收到以下错误:
[!] (plugin svelte) ValidationError: Actions can only be applied to DOM elements, not components
我的期望是 <Button>
会以某种方式 (??) 'pass down' 将 use:link
传递给子 html 节点。
是否有针对此类情况的最佳实践?
由于您使用的是按钮组件,因此您可能需要更改代码以在 on:click
事件中使用 push
而不是 link
。
<script>
import { Button } from 'sveltestrap';
import { push } from 'svelte-spa-router';
let myLink = '/foo/bar';
</script>
<Button on:click={() => push(myLink)}>
Click here
</Button>
我是 Svelte 的新手,很可能我在这里遗漏了一些东西。
我正在使用 sveltestrap and svelte-spa-router。
当我尝试创建 <Button>
(来自 sveltestrap)并使用 link
操作(来自 svelte-spa-router)时,如下所示:
<script>
import { Button } from 'sveltestrap';
import {link} from 'svelte-spa-router';
let myLink = '/foo/bar';
</script>
<Button use:link={myLink}>
Click here
</Button>
我收到以下错误:
[!] (plugin svelte) ValidationError: Actions can only be applied to DOM elements, not components
我的期望是 <Button>
会以某种方式 (??) 'pass down' 将 use:link
传递给子 html 节点。
是否有针对此类情况的最佳实践?
由于您使用的是按钮组件,因此您可能需要更改代码以在 on:click
事件中使用 push
而不是 link
。
<script>
import { Button } from 'sveltestrap';
import { push } from 'svelte-spa-router';
let myLink = '/foo/bar';
</script>
<Button on:click={() => push(myLink)}>
Click here
</Button>