React + Web3.js + Bootstrap으로 연결 지갑 버튼 만들기
npx create-react-app wallet-connect
cd wallet-connect
package.json에서 react-scripts 버전을 확인하십시오. web3.js와 호환되려면 버전이 4.0.3이어야 합니다.
이 명령줄을 실행하여 필요한 모든 것을 설치합니다.
yarn add web3 react-bootstrap bootstrap react-bootstrap-icons
index.js에 다음 줄을 추가합니다.
import 'bootstrap/dist/css/bootstrap.css';
최종 App.js 파일:
import React from 'react';
import Web3 from "web3";
import { Button } from 'react-bootstrap';
import { Wallet } from 'react-bootstrap-icons';
import './App.css';
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
web3: null,
currentAccount: null,
ethBalance: 0,
networkId: null
};
}
componentDidMount = async () => {
this.connectWalletHandler();
};
connectWalletHandler = async () => {
try {
const web3 = new Web3(Web3.givenProvider);
this.setState({ web3: web3});
const accounts = await web3.eth.requestAccounts();
if (accounts.length !== 0) {
const networkId = await web3.eth.net.getId();
const ethBalance = await web3.eth.getBalance(accounts[0]);
this.setState({currentAccount: accounts[0], ethBalance: Web3.utils.fromWei(ethBalance), networkId: networkId});
}
} catch (error) {
console.error(error);
}
}
connectedWallet = () => {
return (
<div>
<p>{parseFloat(this.state.ethBalance).toFixed(4)} ETH</p>
<p>{this.state.currentAccount.slice(0,5)+'...'+this.state.currentAccount.slice(38,42)}<br />WALLET CONNECTED</p>
</div>
)
}
connectWalletButton = () => {
return (
<Button variant="outline-primary" onClick={() => this.connectWalletHandler()}><Wallet /> Connect wallet</Button>
)
}
render() {
return (
<div className="App">
{this.state.currentAccount ? this.connectedWallet() : this.connectWalletButton()}
</div>
);
}
}
export default App;
Reference
이 문제에 관하여(React + Web3.js + Bootstrap으로 연결 지갑 버튼 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/independencedev/create-connect-wallet-button-with-react-web3js-bootstrap-d40텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)