导入web3到next js会报错

2023-11-22

我正在使用 next js 和 Material ui 构建一个用于学习的演示 dapp。我已经安装了元掩码,到目前为止我只能设置一个“连接到钱包”按钮。

我陷入了必须导入 Web3 构造函数的困境。我的代码如下所示:

我的包 json 的屏幕截图

作为开发人员,我也下载了一些无用的东西,因为我认为他们可以解决问题,但他们没有。

这是我收到的错误:

错误

这是整个错误:

服务器错误 类型错误:无法设置仅具有 # 的属性请求 吸气剂

生成页面时发生此错误。任何控制台日志都会 显示在终端窗口中。调用栈 文件:///C:/projects/BC/vending-machine/node_modules/abortcontroller-polyfill/dist/polyfill-patch-fetch.js (529:18) 文件:///C:/projects/BC/vending-machine/node_modules/abortcontroller-polyfill/dist/polyfill-patch-fetch.js (542:5) 文件:///C:/projects/BC/vending-machine/node_modules/abortcontroller-polyfill/dist/polyfill-patch-fetch.js (3:3) 对象。 文件:///C:/projects/BC/vending-machine/node_modules/abortcontroller-polyfill/dist/polyfill-patch-fetch.js (4:3) Module._compile 节点:内部/模块/cjs/loader (1155:14) Object.Module._extensions..js 节点:internal/modules/cjs/loader (1209:10) Module.load 节点:内部/模块/cjs/loader (1033:32) Function.Module._load 节点:内部/模块/cjs/loader (868:12) Module.require 节点:内部/模块/cjs/loader (1057:19) 需要 节点:内部/模块/cjs/helpers (103:18)

请我已经尝试了一切。我希望有人能给出答案。如果您需要更多信息或屏幕截图或代码或任何东西请告诉我。就使用 Web3 而言,我只是简单地尝试导入它。我什至无法在不出现这些错误的情况下导入该死的东西。

这是我导入 web3 的地方

import * as React from "react";
import AppBar from "@mui/material/AppBar";
import Box from "@mui/material/Box";
import Toolbar from "@mui/material/Toolbar";
import Typography from "@mui/material/Typography";
import Button from "@mui/material/Button";
import useStatus from "../custom-hooks/useStatus";
import { Alert } from "@mui/material";
import { useState } from "react";
import Web3 from "web3";

export default function ButtonAppBar() {
  const [error, setError] = useState("");
  const { connected } = useStatus(setError);
  const connectClickHandler = async () => {
    if (!connected && typeof window.ethereum !== "undefined") {
      ethereum
        .request({ method: "eth_requestAccounts" })
        .then(() => {
          //
        })
        .catch((err) => {
          setError(err.message);
        });
    }
  };
  return (
    <Box sx={{ flexGrow: 1 }}>
      <AppBar position="static">
        <Toolbar>
          <Typography variant="h6" component="div" sx={{ flexGrow: 1 }}>
            Vending Machine
          </Typography>
          <Button
            variant={connected ? "disabled" : "inherit"}
            onClick={connectClickHandler}
          >
            connect wallet
          </Button>
        </Toolbar>
      </AppBar>
      {error && <Alert severity="error">{error}</Alert>}
    </Box>
  );
}

我认为这与最近的 web3 1.8 版本有关。 至少我在 Next.js 中的无服务器函数中使用它时遇到了同样的问题。
降级 1.7.4 为我解决了这个问题。

npm install [email protected]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

导入web3到next js会报错 的相关文章

随机推荐

  • size_t 的值无效

    人们用什么来表示 size t 无效 1 不起作用 0 可以是有效大小 Perhaps size t 1 严格来说 它is有效的尺寸 但一旦有了这个 您就不太可能需要任何其他的
  • Java 中带有属性的枚举

    每种颜色都有自己的静态属性 数字 我希望能够用一种方法来改变这个值 我可以使用枚举来做到这一点吗 像这样或者也许不同 public enum Color RED ORANGE YELLOW Color RED setValue x Colo
  • 删除 Excel 单元格中的换行符、回车符和所有前导空格

    我不知道发生了什么 但我的单元格中包含似乎是回车的东西 我努力了TRIM CLEAN SUBSTITUTE A1 CHAR 10 以及一些用于删除这些字符的宏 删除这些字符的唯一方法是使单元格处于活动状态 单击最后一个字符附近的删除 然后单
  • React Native + Redux Form - 使用键盘下一个按钮转到下一个 TextInput 字段

    我在用着回归形式 RF 在 React Native 应用程序中 一切正常 但我不知道如何获得refs来自Field输入以使用 Redux Form 转到下一个输入字段 不带射频this解决方案会很好地工作 这是我的代码 class Ren
  • 无法通过套接字“/var/mysql/mysql.sock”连接到本地 MySQL 服务器 (38)

    我在尝试连接 mysql 时遇到了一个大问题 当我跑步时 usr local mysql bin mysql start 我有以下错误 Can t connect to local MySQL server through socket v
  • 如何获取频率然后将其作为变量添加到数组中?

    假设我有一个这种格式的数组 X Y Z A 1 0 A 2 1 B 1 1 B 2 1 B 1 0 我想找到给定X的X的频率和Y的频率 然后将它们添加到数组中 X Y Z F x F Y X A 1 0 2 1 A 2 1 2 1 B 1
  • 包含 Visual Studio 测试运行程序集的目录无效

    我们已将 TFS 安装从 2012 年升级到 2013 年 运行我们的构建时 如果启用单元测试 它们将失败并出现以下错误 TF900547 The directory containing the assemblies for the Vi
  • “ref”使用的实用示例[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在努力如何在实际应用程序中使用 ref 通过引用传递参数 我想要一个简单且主要有意义的例子 到目前为止 我发现的所有内容都可以通过向方法添加返回类型来轻松重做 有人知道吗 谢
  • Ruby Gemspec 中的条件依赖

    我正在构建一个 gem 需要安装 json gem 才能正常工作 哪种 json gem 并不重要 json pure json jruby 或基于 C 的 json 有没有在 gemspec 中定义这个的好方法 这个回应建议为每个版本维护
  • PhantomJS - 上传文件而不提交表单

    是否可以使用 PhantomJS 将文件上传到某个页面而无需手动提交表单 我认为使用内容类型 multipart form data 是可能的 上的例子https github com ariya phantomjs blob master
  • 访问 dplyr 中的分组数据

    从 dplyr 应用 group by 函数并使用 运算符后 如何访问分组数据 例如 如果我想要每个分组数据的第一行 那么我可以使用 plyr 包来执行此操作 ddply iris Species function df df 1 outp
  • Flask 会话如何工作?

    我很好奇 Flask 会话是如何工作的 特别是它如何在服务器重新启动之间存储信息 如果我错了 请引用我的话 我知道你必须设置一个独特的app secret key因此人们无法以任何方式解密会话并修改 cookie 因为会话的 cookie
  • 将数组中的空值替换为零值

    我有一个数组 我需要删除空值并将其替换为零 我已经取得了这么多成就 当我检查数组长度为 8 但它只显示 2 个元素时 用零替换它的最佳方法是什么 var a a 3 5 a 5 15 console log a length 6 conso
  • 获取相关实体 ASP.NET WebApi OData v4 导致“未找到与请求 URI 匹配的 HTTP 资源”

    我跟着Mike Wasson 的这个 ASP NET 教程 并设法很好地设置了相关实体 但是当我将此逻辑应用于我的项目时 更复杂的实体关系 因为实体关系更多 这是唯一的区别 在 OData 调用中不会成功 我收到带有此有效负载的 404 e
  • 找不到模块 FBSDKCoreKit Cocoapods

    我正在尝试使用 CocoaPods 使用 use frameworks 将 facebook 集成到我的应用程序中 标签 并根据 Facebook 的此处说明 还包括吊舱螺栓 当我尝试使用时import FBSDKCoreKit在我的 ap
  • 代理与自然/业务密钥[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 又来了 老争论依然出现 我们是否最好将业务键作为主键 或者我们宁愿使用对业务键字段具有唯一约束的代理 ID 即 SQL Server 标识 请提供例子或证据来支持你的理论 使用代理键的几个
  • 按连接值对 R 数据帧进行分组

    我没有找到 R 中这个常见分组问题的解决方案 这是我的原始数据集 ID State 1 A 2 A 3 B 4 B 5 B 6 A 7 A 8 A 9 C 10 C 这应该是我分组的结果数据集 State min ID max ID A 1
  • SVN 术语 - 签出、工作副本、属性、存储库

    当我尝试学习如何使用时svn externals 我很难理解这些术语的差异 它们有何不同 工作副本 and checkout 有时构建是有用的工作副本这是由许多不同的结账 source property 在 Subversion 中 您可以
  • 哪个性能更好: test != null 或 null != test [重复]

    这个问题在这里已经有答案了 考虑以下两行代码 if test null and if null test 从性能角度来看 上述两种说法有什么区别吗 我见过很多人使用后者 当被问及时 他们说这是最佳实践 但没有充分的理由 没有不同 第二个原因
  • 导入web3到next js会报错

    我正在使用 next js 和 Material ui 构建一个用于学习的演示 dapp 我已经安装了元掩码 到目前为止我只能设置一个 连接到钱包 按钮 我陷入了必须导入 Web3 构造函数的困境 我的代码如下所示 我的包 json 的屏幕