如何创建 Recoil MutableSnapshot?
How to create Recoil MutableSnapshot?
根据文档,
https://recoiljs.org/docs/api-reference/core/RecoilRoot
<RecoilRoot>
接受道具作为 initializeState?: (MutableSnapshot => void)
签名。
能够初始化反冲状态,所以我想使用这个道具,但我不明白如何制作 MutableSnapshot
对象。
import {RecoilRoot} from 'recoil';
function AppRoot() {
return (
<RecoilRoot initializeState={/* How to setup arguments here? */} >
<ComponentThatUsesRecoil />
</RecoilRoot>
);
}
另一方面,Snapshot
更容易从 useRecoilSnapshot()
获得。
我自己想出问题的答案。
MutableSnapshot 由 Recoil 库代码自动传递,因此用户不必自己创建 MutableSnapshot 对象。
下面的代码通常是 initializeState 的用法。
从带有对象解构的 MutableSnapshot 中选择你需要的参数(设置、获取等),然后编写你的状态初始化代码。
render(
<RecoilRoot
initializeState={({ set }: MutableSnapshot): void =>
set(recoilState, initialRecoilStateValue)
}
>
{ui}
</RecoilRoot>
)
根据文档, https://recoiljs.org/docs/api-reference/core/RecoilRoot
<RecoilRoot>
接受道具作为 initializeState?: (MutableSnapshot => void)
签名。
能够初始化反冲状态,所以我想使用这个道具,但我不明白如何制作 MutableSnapshot
对象。
import {RecoilRoot} from 'recoil';
function AppRoot() {
return (
<RecoilRoot initializeState={/* How to setup arguments here? */} >
<ComponentThatUsesRecoil />
</RecoilRoot>
);
}
另一方面,Snapshot
更容易从 useRecoilSnapshot()
获得。
我自己想出问题的答案。 MutableSnapshot 由 Recoil 库代码自动传递,因此用户不必自己创建 MutableSnapshot 对象。
下面的代码通常是 initializeState 的用法。 从带有对象解构的 MutableSnapshot 中选择你需要的参数(设置、获取等),然后编写你的状态初始化代码。
render(
<RecoilRoot
initializeState={({ set }: MutableSnapshot): void =>
set(recoilState, initialRecoilStateValue)
}
>
{ui}
</RecoilRoot>
)