假设我有一个名为 button.svelte
的可重用组件,
<script>
export let text = undefined
</script>
<button>{text}</button>
现在我像这样在另一个组件中重用这个组件,
<script>
import { onMount } from "svelte"
import Button from "./Button.svelte"
let button
onMount(() => {
console.log(button) // How do I print the html of the button element?
})
</script>
<Button text="Button" bind:this="{button}"></Button>
但是bind:this
的button
好像没有button元素的html。如何获取按钮的html元素?
最佳答案
要做到这一点,你必须做两件事
使用
bind:this={prop}
将元素绑定(bind)到 prop。通过bonded prop访问父组件中的元素,重要的是你必须在响应式语句
$:
中做到这一点。
Button.svelte
<script>
export let node
</script>
<button bind:this={node}>
<slot />
</button>
导入按钮组件
<script>
import Button from './Button.svelte'
let button
$:console.log(button)
</script>
<Button bind:node={button}>
Hello
</Button>
关于javascript - 如何使用绑定(bind) :this? 获取 Svelte 组件的 html 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67334531/