我使用松露解开盒做出了一个新项目,并假设我使用Infura将dapp直接部署到Rinkeby,但我在app.js中与web3交互时遇到了问题
我的src文件夹中有一个web3文件,这是其内容
import Web3 from 'web3';
let web3 = new Promise(function(resolve, reject) {
window.addEventListener('load', function() {
var results
var web3 = window.web3
if (typeof web3 !== 'undefined') {
web3 = new Web3(web3.currentProvider)
results = {
web3: web3
}
console.log(web3);
console.log('Injected web3 detected.');
resolve(results)
} else {
var provider = new Web3.providers.HttpProvider('http://127.0.0.1:9545')
web3 = new Web3(provider)
results = {
web3: web3
}
console.log('No web3 instance injected, using Local web3.');
resolve(results)
}
})
})
export default web3
然后我将该文件导入到我的app.js
import web3 from './web3';
我只是调用JSX段落标签
<p> web3.utils.fromWei(this.state.balance, 'ether') </p>
我在控制台日志中遇到的错误如下:“未捕获的TypeError:无法读取未定义的属性'fromWei'”
我正在(可能是错误的)假设下运行了truffle unbox react命令时已下载了web3,因此无需使用npm进行安装。
有什么想法我要去哪里吗?
谢谢!
答案 0 :(得分:0)
这是一个异步呼叫,您必须等待它。 await web3.utils.fromWei(this.state.balance, 'ether')
应该可以。