开关 atom

布尔量的切换动作应该是一般应用中比较常见的操作,尤其在响应用户操作一些配置项的时候更为常用。但是布尔量的切换操作会产生大量的样例代码。这种情况就很值得对其优化一下。

这里选择的方法是创建一个直接支持切换操作的 atom。具体 atom 创建函数的代码如下。

export function atomWithToggle( initialValue: boolean ): WritableAtom<boolean, [boolean?], void> { const anAtom = atom(initialValue, (get, set, nextValue?: boolean) => { const update = nextValue ?? !get(anAtom); set(anAtom, update); }); return anAtom as WritableAtom<boolean, [boolean?], void>; }

这样创建出来的 atom,其更新方法可以接受指定的布尔状态,也可以根据 atom 之前的状态自行完成切换动作。