有各种各样的教程教授如何激活和停用Metamask钱包,或者一般情况下可能是任何密码钱包,但在所有这些教程中,我都有相同的问题,如下所示:
当我停用我的帐户时,仍然会在Metamask GUI中显示您已连接,问题是当您重新加载页面时,您将再次获得连接的行为,就好像您从未断开连接一样,您可以通过下面的代码示例亲自验证这一点:
使用UseDapp框架:
import React from 'react'
import { useEthers } from '@usedapp/core'
const TryUseDappExample = () => {
const { activateBrowserWallet, deactivate, account } = useEthers()
return (
<div>
{!account && <button onClick={activateBrowserWallet}> Connect </button>}
{account && <button onClick={deactivate}> Disconnect </button>}
{account && <p>Account: {account}</p>}
</div>
)
}
export default TryUseDappExample请尝试点击connect ->断开->重新加载页面,您将看到您仍在连接。
使用Web3-Reaction教程提供了同样的场景,尽管当我重新加载页面时,它并不显示钱包是连接的,而是只显示在Metamask上。
我的问题是一个普遍的问题,你如何正确地断开元钱包与dapp?
谢谢!
您可以在提供的图像中看到行为,钱包通过断开按钮断开连接,但您仍然可以看到它在Metamask中的连接。

发布于 2022-01-31 18:01:06
我也面临过这个问题,但我发现dapp应用程序无法从Metamask内部断开连接(它没有特权)。
我们可以做的是从应用程序内部处理连接。示例:您将帐户和提供者存储在变量中,然后按下“断开”按钮,它就会从该变量中删除该信息。你认为我们是断开连接,但在现实中,我们不能断开与实际元。
但是,当有人真正断开他/她的帐户与Metamask,然后你可以监听accountChanged事件,以处理它在你的应用程序。
https://stackoverflow.com/questions/70133769
复制相似问题