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