我曾经获得过Metamask帐户地址,但突然我无法获得帐户并收到此错误。
Uncaught (in promise) Error: No valid "from" address specified in neither the given options, nor the default options.
我指定了这样的地址
const accounts = await web3.eth.getAccounts()
this.setState({ account: accounts[0] })
此代码中发生错误
createPlace(name) {
this.setState({ loading: true })
this.state.placeList.methods.createPlace(name).send({ from: this.state.account })
.once('receipt', (receipt) => {
this.setState({ loading: false })
})
}
我的代码有问题吗?
请给我任何建议吗?
答案 0 :(得分:0)
在这种情况下,Metamask无法连接到浏览器并将web3注入浏览器。
一个解决方案可以是 您的代码中可能会有一行检查 CurrrentProvider ?
例如:
if (typeof window !== 'undefined' && typeof window.web3 !== 'undefined') {
// We are in the browser and metamask is running.
web3 = new Web3(window.web3.currentProvider);
}
将行更改为
window.web3.currentProvider.enable()
并保存文件,同时保持服务器运行。
这应该对您有用。
您可以做的另一件事是在try块中编写逻辑代码,然后执行
window.web3.currentProvider.enable()