我有这个问题在一个简单的反应应用程序。我试图使用" connect“按钮连接元问询,但是当我单击该按钮时,控制台会显示一个错误,上面写着”错误:不变失败: No found“。
正如您所看到的,我向getLibrary函数添加了一个控制台,它不是日志记录,因此,该函数永远不会被调用。
import "./App.css";
import React from "react";
import { Web3ReactProvider, useWeb3React } from "@web3-react/core";
import { Web3Provider } from "@ethersproject/providers";
import { InjectedConnector } from "@web3-react/injected-connector";
const injected = new InjectedConnector({
supportedChainIds: [1, 3, 4, 5, 42],
});
function getLibrary(provider) {
console.log("getting library")
const library = new Web3Provider(provider)
library.pollingInterval = 12000
return library
}
const App = () => {
const { active, account, library, connector, activate, deactivate } =
useWeb3React();
async function connect() {
console.log("connecting");
try {
await activate(injected);
} catch (ex) {
console.log(ex);
}
}
async function disconnect() {
try {
deactivate();
} catch (ex) {
console.log(ex);
}
}
return (
<Web3ReactProvider getLibrary={getLibrary}>
<div className="App">
{!active ? <button onClick={connect}>Connect</button> : <button onClick={connect}>Disconnect</button>}
</div>
</Web3ReactProvider>
);
}发布于 2022-05-25 15:18:05
这里的问题是,您试图在定义上下文提供程序的同一个组件中调用use钩子。将提供程序移到更高的级别,进入调用App的组件,或者将钩子和剩余逻辑--低一级--移动到新组件中。
https://stackoverflow.com/questions/71576005
复制相似问题