![](/img/trans.png)
[英]Svelte: How to pass data or props from a child component to the parent?
[英]How can I receive arbitrary props in a Svelte component and pass to a child component?
我想從“above”接收任意道具並將它們傳播到<input>
,如下所示,其中inputProps
將成為包含在此組件上設置的任何其他道具的對象(類似於 python 的**kwargs
,以防你熟悉):
<script>
export let id;
export ...inputProps;
</script>
<div>
id: {id}
<input {...inputProps} />
</div>
你能指出正確的 Svelte 機制來完成這樣的事情嗎? 我有一種感覺,我問錯了問題,但我需要一個苗條的開發人員來糾正我。 我應該改用插槽嗎? 或者了解操作/“使用指令”?
你可以使用$$props
來訪問所有賦予組件的 props。
$$props
引用所有傳遞給組件的 props——包括那些沒有用export
聲明的 props。 它在極少數情況下很有用,但通常不推薦使用,因為 Svelte 很難優化。
示例 ( REPL )
<!-- App.svelte -->
<script>
import Child from './Child.svelte';
</script>
<Child id="foo" placeholder="bar" />
<!-- Child.svelte -->
<script>
let id, inputProps;
$: ({ id, ...inputProps } = $$props);
</script>
<div>
id: {id}
<input {...inputProps} />
</div>
Svelte 現在還提供$$restProps
。 請參閱Svelte API 文檔 - 屬性和道具。
$$props
引用所有傳遞給組件的 props——包括那些沒有用 export 聲明的 props。 它在極少數情況下很有用,但通常不推薦使用,因為 Svelte 很難優化。
<Widget {...$$props}/>
$$restProps
僅包含未通過導出聲明的道具。 它可用於將其他未知屬性傳遞給組件中的元素。
<input {...$$restProps}>
導出時您不需要使用擴展運算符
<script>
export let id;
export inputProps;
</script>
<div>
id: {id}
<input {...inputProps} />
</div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.