Web3无法连线

时间:2018-08-23 02:29:38

标签: javascript blockchain ethereum solidity web3js

我使用松露解开盒做出了一个新项目,并假设我使用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进行安装。

有什么想法我要去哪里吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

这是一个异步呼叫,您必须等待它。 await web3.utils.fromWei(this.state.balance, 'ether')应该可以。