我正在使用@metamask/detect-provider,当我使用我的Metamask钱包的第二个帐户时,第二个帐户在执行中不被考虑。这是执行
时总是占用的第一个帐户。accountsChanged事件将在更改帐户时触发。所以写一个回调来处理它。我只是设置了一个状态。
useEffect(() => {
// you have to write code to detect provider. [@metamask/detect-provider][1]
// if there is no accound set it null as default
provider &&
provider.on("accountsChanged", () => setAccount(accounts[0] ?? null));
}, []);
或
useEffect(() => {
window.ethereum &&
window.ethereum.on("accountsChanged", () => setAccount(accounts[0] ?? null));
}, []);