簡體   English   中英

使用 ReactJS 和 Javascript 中的 Metamask 連接用戶以太坊帳戶

[英]Connecting User Ethereum account with Metamask in ReactJS and Javascript

首先,我對編程還很陌生,所以請耐心等待 =)

我正在構建一個應用程序,它需要用戶連接他們的 Metamask 帳戶。 我希望能夠將 web3 相關功能存儲在單獨的 js 文件中。 我目前正在研究可重復使用的 Metamask Connect 按鈕。 按鈕代碼如下所示:

export default function MetamaskBtn() {
  function connect() {
    window.ethereum.request({ method: 'eth_requestAccounts' })
  }
  console.log(connect);
  return (
    <button
      onClick={connect}
      style={{
        id: 'metamaskbtn',
        gridArea: 'web3',
        fontSize: '60%',
        border: 'solid 1px #174666',
        background: '#E36E1A',
        borderRadius: '3px',
        placeSelf: 'center'
      }}>
      Connect Wallet
    </button>
  )
} 

工作正常,現在我試圖將該connect()函數保存在一個外部 js 文件中,我稱之為ConnectMetamask

export function ConnectMetamask() {
  window.ethereum.request({ method: 'eth_requestedAccounts' })
}

然后我嘗試將文件導入我的 jsx 文件,但沒有成功:

import { ConnectMetamask } from "../../../../_JS Functions/web3Function";

const Metamask = ConnectMetamask

export default function MetamaskBtn() {
  console.log(Metamask);

  return (
    <button
      onClick={Metamask}
      style={{
        id: 'metamaskbtn',
        gridArea: 'web3',
        fontSize: '60%',
        border: 'solid 1px #174666',
        background: '#E36E1A',
        borderRadius: '3px',
        placeSelf: 'center'
      }}>
      Connect Wallet
    </button>
  )
}

console.log()兩個函數,它們實際上打印相同的東西。
connect()

ƒ connect() {
    window.ethereum.request({
      method: 'eth_requestAccounts'
    });
  }

ConnectMetamask()

ƒ ConnectMetamask() {
  window.ethereum.request({
    method: 'eth_requestedAccounts'
  });
}

我從后者得到的錯誤是:

index.js:1 MetaMask - RPC Error: The method 'eth_requestedAccounts' does not exist / is not available. {code: -32601, message: "The method 'eth_requestedAccounts' does not exist / is not available.", data: {…}}

localhost/:1 Uncaught (in promise) {code: -32601, message: "The method 'eth_requestedAccounts' does not exist / is not available.", data: {…}}

希望有人能幫我解決這個問題!

好吧,事實上我剛剛意識到這是一個拼寫錯誤 =) hehe-.. 應該是'eth_requestAccounts'而不是'eth_requestedAccounts'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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