【问题标题】:Why is this parent variable not changing?为什么这个父变量没有改变?
【发布时间】:2021-06-25 20:54:36
【问题描述】:
【问题讨论】:
标签:
javascript
svelte
svelte-3
two-way-binding
【解决方案1】:
您永远不会将父母的name 绑定到孩子的name
只是将父级的name 作为道具传递给子级就给了子级的name 一个默认值,但是一旦子级的版本被修改,它就会断开连接(另外,如果父级重新渲染,我是 99%肯定孩子会失去状态)。你需要像这样绑定name:
<h1><Form bind:name></Form></h1>
苗条的 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>