实际上,我可以获得元掩码帐户的地址,但每次我更改元掩码中的帐户时,特定组件似乎不会再次呈现。我不知道在useEffect的数组参数中添加什么,以便在不重新加载的情况下在网页上反映我的account
中的更改。以下是app.js
中定义的useState
和useEffect
。
我已经实现了元掩码连接功能。
JavaScript语言
const [account, setAccount] = useState(null) // useState functionality
useEffect(() => { // useEffect functionality
const getaccount = async()=>{
const accounts = await window.ethereum.request({method:'eth_accounts'});
setAccount(accounts[0].toUpperCase())
}
getaccount();
}, [])
HTML格式
return (
<div className="App">
<header className="App-header">
<h1>First Dapp Application</h1>
<p>Our account address is: {account ? account:"not connected"}</p>
</header>
</div>
);
1条答案
按热度按时间b1uwtaje1#
我还没有测试过这段代码,但基本上,当帐户发生变化时,您需要在第一个页面加载挂钩上添加一个侦听器:
我不是ReactMaven,但我认为您可以添加另一个
useEffect()
用于初始化,如下所示: