我是ReactJS的新手。似乎在React中从Metamask集成web 3时遇到了麻烦。Metamask版本:web3@1.0.0-beta.34
import Web3 from 'web3'
let web3;
window.addEventListener('load', function () {
if (typeof window.web3 !== 'undefined') {
web3 = new Web3(window.web3.currentProvider);
} else {
// No web 3 provider
console.log("Please install Metamask");
}
});
export default web3;
获取以下错误:
未定义窗口
参考错误:未定义窗口
在Object../lib/getWeb3.js(lib/getWeb3.js:5:0)
1条答案
按热度按时间guykilcj1#
window
没有在服务器端定义,只在客户端的浏览器中定义,因此你不能使用MetaMask服务器端。但是,当你想在你的React组件服务器端使用web3或者没有MetaMask支持时,你可以连接到INFURA。最简单的方法是使用react-web3-provider组件。
将
Web3Provider
添加到根React组件:然后在要使用Web3的组件中: