为什么这个父变量没有改变?

弗雷德·霍斯

为什么在这个 REPL 中:https : //svelte.dev/repl/0b2fc740a59847c19b2471b4a1459d42?version = 3.38.3 App.svelte 中的名称在我使用表单输入更改时没有更新?

name 在 Form.svelte 变化。

为什么?

双向绑定不是一直开启吗?

萨马廷阿吉格

你从来没有把父母的name和孩子的name

只是将父母name作为道具传递给孩子给孩子name一个默认值,但是一旦孩子的版本被修改,它就会断开连接(另外,如果父母重新渲染,我99%肯定孩子会失去状态) . 你需要name像这样绑定

<h1><Form bind:name></Form></h1>

Svelete REPL 链接:https ://svelte.dev/repl/30859806c88c449daba8be279fbce537

<!-- App.svelete -->

<script>
    import Form from "./Form.svelte";
    
    let name = 'world';
    
    $: console.log("name:", name)
</script>

name in App.svelte: {name}

<!-- **bind the name** -->
<h1><Form bind:name></Form></h1>

<!-- Form.svelete -->

<script>
    export let name;
</script>

name in Form.svelte: {name}

<form on:submit|preventDefault>
    <input id="name" bind:value={name} />
</form>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章