父组件:
<script>
import Child from "./Child.svelte"
import { onMount } from "svelte";
import apireq from "./api.js";
let items = $state.raw([]);
let splitItems = $derived(items.splice(0, 5));
onMount(() => {
apireq().then(v => items = v)
})
</script>
<h1>item count in parent {items.length}</h1>
<Child items={splitItems} />
子组件
<script>
let props = $props();
let { items} = props;
</script>
item count in child:
<div>{items.length}</div>
api 请求后子组件不会更新..仍然显示 0 计数父级确实更新。
我尝试了和$state
。$state.raw
但我不希望完全反应,因为它是一个很大的数组,而分配时的反应应该足够了
这在 svelte 4 中曾经非常简单,但在 5 中没有任何效果如预期 :(