Mar*_*ame 5 javascript node.js next.js web3js
我正在使用 next js 和 Material ui 构建一个用于学习的演示 dapp。我已经安装了元掩码,到目前为止我只能设置一个“连接到钱包”按钮。
我陷入了必须导入 Web3 构造函数的困境。我的代码如下所示:
作为开发人员,我也下载了一些无用的东西,因为我认为他们可以解决问题,但他们没有。
这是我收到的错误:
这是整个错误:
服务器错误 TypeError: 无法设置只有 getter 的 # 属性请求
生成页面时发生此错误。任何控制台日志都将显示在终端窗口中。调用堆栈文件:///C:/projects/BC/vending-machine/node_modules/abortcontroller-polyfill/dist/polyfill-patch-fetch.js (529:18) 文件:///C:/projects/BC/自动售货机/node_modules/abortcontroller-polyfill/dist/polyfill-patch-fetch.js (542:5) file:///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 节点:internal/modules/cjs/loader (1155 :14) Object.Module._extensions..js 节点:internal/modules/cjs/loader (1209:10) Module.load 节点:internal/modules/cjs/loader (1033:32) Function.Module._load 节点:internal /modules/cjs/loader (868:12) Module.require 节点:internal/modules/cjs/loader (1057:19) require 节点:internal/modules/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>
);
}
Run Code Online (Sandbox Code Playgroud)
我认为这与最近的 web3 1.8 版本有关。至少我在 Next.js 中的无服务器函数中使用它时遇到了同样的问题。
降级 1.7.4 为我解决了这个问题。
npm install web3@1.7.4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1767 次 |
| 最近记录: |