[英]cannot disconnect or close or clear accounts from web3model or web3
我正在尝试与提供商断开连接,以便在未连接时显示带有连接按钮的屏幕,并在已连接时显示显示屏幕。
示例代码不起作用:
public resetApp = async () => {
const { web3 } = this.state;
if (web3 && web3.currentProvider && web3.currentProvider.close) {
await web3.currentProvider.close();
}
await this.web3Modal.clearCachedProvider();
this.setState({ ...INITIAL_STATE });
};
web3.currentProvider.close();
不是 function。 条件从未满足。 web 上的所有示例都不起作用。
下面的这段代码总是返回一个地址,除了手动禁用元掩码并从 chrome 扩展设置再次启用它之外,我没有尝试过清除它。
const accounts = await web3.eth.getAccounts();
if (accounts[0] != null) {
// connected
resolve(true);
} else {
// not connected
resolve(false);
}
请任何人都可以提供帮助。
找到解决方案:我的情况是测试错误的东西(不知道怎么说)。 如果你调用 await web3Modal.clearCachedProvider();
然后web3Modal.cachedProvider
返回一个空字符串。
// test if wallet is connected
if (web3Modal.cachedProvider) {
// connected now you can get accounts
const accounts = await web3.eth.getAccounts();
}
// disconnect wallet
const disconnectWallet = async (web3Modal: any) => {
await web3Modal.clearCachedProvider();
}
这将起作用;
async onDisconnect() {
await web3Modal.clearCachedProvider();
window.localStorage.clear();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.