Web3 未连接
Web3 Not Wiring Up
我用 truffle unbox react 创建了一个新项目,假设我使用 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>
我在控制台日志中得到的错误如下:"Uncaught TypeError: Cannot read property 'fromWei' of undefined"
我在(可能不正确的)假设下操作,即当我 运行 truffle unbox react 命令时下载了 web3,因此无需使用 npm 安装它。
有什么地方出错了吗?
谢谢!
这是您必须等待的异步调用。 await web3.utils.fromWei(this.state.balance, 'ether')
应该可以。
我用 truffle unbox react 创建了一个新项目,假设我使用 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>
我在控制台日志中得到的错误如下:"Uncaught TypeError: Cannot read property 'fromWei' of undefined"
我在(可能不正确的)假设下操作,即当我 运行 truffle unbox react 命令时下载了 web3,因此无需使用 npm 安装它。
有什么地方出错了吗?
谢谢!
这是您必须等待的异步调用。 await web3.utils.fromWei(this.state.balance, 'ether')
应该可以。