是否可以直接在 Svelte 3 中绑定对象字段?

Fre*_*ors 4 svelte svelte-component svelte-2 svelte-3

有没有办法在 Svelte 3 中绑定对象字段?

例子:

<script>
  import MyComponent from "./MyComponent.svelte"
  let myobjectID
</script>

<MyComponent bind:myobject[id]={myobjectID}>

<!-- Where myobject == {id: "123", name: "myName", and so on...} -->
Run Code Online (Sandbox Code Playgroud)

这可能吗?

Ste*_*aes 5

不,没有。

如果您想MyComponent在内部使用一个对象,但只允许使用者更改该对象的特定部分,您可以执行以下操作:

应用程序.svelte

<script>
  import MyComponent from "./MyComponent.svelte"
  let myobjectID
</script>

<MyComponent bind:id={myobjectID} />
Run Code Online (Sandbox Code Playgroud)

MyComponent.svelte

<script>
    export let id
    $: myobject = {
        id,
        name: 'myName'
    }
</script>
Run Code Online (Sandbox Code Playgroud)

但是,一种更通用的方法是,您可以以不存在的任何属性来执行此操作myobject,在这种情况下,您最好不要在组件内部使用对象,而只是在需要时将其构造为对象。