首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下一个js中的web3Provider

下一个js中的web3Provider
EN

Stack Overflow用户
提问于 2022-08-30 19:33:03
回答 1查看 114关注 0票数 0

我试着在下一个JS中使用Web3-react v6,当我尝试用提供者包装mi肠应用程序时出现了一个错误,

_app.jsx里我有这个

代码语言:javascript
复制
import React from 'react';
import { Web3ReactProvider } from '@web3-react/core/dist';
import Layout from '../components/Layout/Layout';
import './styles.css';
import { getLibrary } from '../config/web3';

//import "semantic-ui-css/semantic.min.css"; include library if you need

const MyApp = ({ Component, pageProps }) => {
  return (
    <Web3ReactProvider getLibrary={getLibrary}>
      <Layout>
        <Component {...pageProps} />
      </Layout>
    </Web3ReactProvider>
  );
};

export default MyApp;

但我得到了

代码语言:javascript
复制
ReferenceError: window is not defined
    at Object.<anonymous> (/home/bjvalmaseda/Dev/Dochain/frontend/node_modules/web3/dist/web3.min.js:1:190)
    at Module._compile (node:internal/modules/cjs/loader:1126:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1180:10)
    at Module.load (node:internal/modules/cjs/loader:1004:32)
    at Function.Module._load (node:internal/modules/cjs/loader:839:12)
    at Module.require (node:internal/modules/cjs/loader:1028:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.web3/dist/web3.min (/home/bjvalmaseda/Dev/Dochain/frontend/.next/server/pages/_app.js:669:18)
    at __webpack_require__ (/home/bjvalmaseda/Dev/Dochain/frontend/.next/server/webpack-runtime.js:33:42)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-31 08:30:15

服务器端没有定义window。由于您使用的是NextJS,我假设您正在执行SSR,这就是错误产生的地方。

要避免此错误,可以:

  1. 不使用window (如果可能)
  2. 使用useEffect hook

示例:

代码语言:javascript
复制
useEffect(() => {
  if (window){
    window.addEventListener('keyup', setCorrectElement);
  }
  return () => {
    window.removeEventListener('keyup', setCorrectElement);
  }
}, [])

  1. 检查window是否存在于当前上下文

中。

代码语言:javascript
复制
if (typeof window === "undefined") /* you are on the server */ 

如果从外部库引发此错误,则可能不支持SSR。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73547622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档