如何更新 Recoil JS Atom 对象

How to update Recoil JS Atom Object

我有一个这样定义的 Atom 对象:

export const walletInfo = atom({
  key: "walletInfo",
  default: {
    connected: false,
    someString: "",
    someInt: 0,
    someOtherInfo: "",
  },
});

问题是,如何在不覆盖其他所有内容的情况下只更改 Atom 对象中的单个值?例如,如何设置 connected: true 并保留其余信息?

下面的代码将“擦除”对象的其余部分

import { walletInfo } from "../src/atoms";
const [wallet, setWallet] = useRecoilState(walletInfo);

setWallet({
   connected: true,
});

你需要像这样组合之前的状态和更新后的状态

setWallet((prevState) => ({
   ...prevState,
   connected: true,
}));