syncEffect(...)
一个用于获取 原子效果 的函数,该函数用于 recoil-sync
库将原子与使用 <RecoilSync>
组件定义的外部状态同步。
function syncEffect<T>(options: {
refine: Checker<T>,
itemKey?: string,
storeKey?: string,
syncDefault?: boolean,
// Optional for advanced mappings
read?: ReadAtom,
write?: WriteAtom<T>,
}): AtomEffect<T>
可选选项
itemKey
- 此特定原子在外部存储中的字符串键。如果未提供,则默认为原子的自身键。storeKey
- 一个字符串键,用于将此效果与要同步的<RecoilSync>
存储匹配。syncDefault
- 如果为 true,原子将同步实际的默认值,而不是清除或重置外部状态。设置此选项时,还将尝试在首次读取原子时写入默认值,而不仅仅是在设置时写入。read
- 一个可选的回调函数,用于描述如何从外部存储中读取此原子。write
- 一个可选的回调函数,用于描述如何将此原子写入外部存储。
示例
请查看 同步效果指南 了解示例。
高级映射
read
接口
type ReadItem = ItemKey =>
| void
| DefaultValue
| Promise<DefaultValue | mixed>
| Loadable<DefaultValue | mixed>
| mixed;
type ReadAtom = ({read: ReadItem}) =>
| DefaultValue
| Promise<DefaultValue | mixed>
| Loadable<DefaultValue | mixed>
| mixed;
write
接口
type WriteItem = <T>(ItemKey, DefaultValue | T) => void;
type ResetItem = ItemKey => void;
type WriteAtomInterface = {
write: WriteItem,
reset: ResetItem,
read: ReadItem,
};
type WriteAtom<T> = (WriteAtomInterface, DefaultValue | T) => void;
请查看 这些示例。