跳至主要内容

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;

请查看 这些示例