簡體   English   中英

無法從 web3model 或 web3 斷開或關閉或清除帳戶

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM