“WagamiConfig 组件无法读取未定义的属性(读取 ‘queryClient’)”

huangapple go评论75阅读模式
英文:

WagamiConfig Component Cannot read properties of undefined (reading 'queryClient')

问题

I see you're encountering an error in your React app. Here's a translated summary of the issue:

你遇到了React应用中的错误。以下是翻译:

问题出在你的代码中,但错误信息的截图并没有提供足够的信息,因此很难确定问题的根本原因。你需要检查以下几点:

  1. 确保你已经正确安装了所有依赖项。你可以运行 npm installyarn install 来确保所有包都已安装。

  2. 检查你的导入语句是否正确。确保你导入的模块和组件名称都是正确的,没有拼写错误。

  3. 请检查你的路由配置是否正确。确保路径与组件匹配,并且你没有遗漏任何必要的配置。

  4. 如果你使用了Web3Modal和其他区块链相关的库,确保它们的版本兼容并且正确配置了。

如果你能提供更多的错误信息或代码片段,我将能够提供更具体的帮助。

英文:

I have been trying to add web3modal to my react app however there is an error while running the app in the browser.

import { Web3Modal } from '@web3modal/react'
import { configureChains, createConfig, WagmiConfig } from 'wagmi'
import { EthereumClient, w3mConnectors, w3mProvider } from '@web3modal/ethereum'
import { polygonMumbai } from 'wagmi/chains'

import {Routes, Route} from "react-router-dom";
import Main from './Pages/Main';
import MarketPlace from './Pages/MarketPlace.js';
import CreatePost from './Pages/CreatePost';
import Post from './Pages/Post';
import Login from './Pages/Login';

function App() {



const chains = [polygonMumbai]
const projectId = 'id'

const { publicClient } = configureChains(chains, [w3mProvider({ projectId })])
const wagmiConfig = createConfig({
  autoConnect: true,
  connectors: w3mConnectors({ projectId, version: 1, chains }),
  publicClient
})

const ethereumClient = new EthereumClient(wagmiConfig, chains)

return (
    <>
    <WagmiConfig client={wagmiConfig}>
        <Routes>
          <Route path='/login' element={<Login type="login"/>}/>
          <Route path='/signup' element={<Login type="signup"/>}/>
          <Route path='/' element={<Post/>}/>
          <Route path='/marketPlace' element={<MarketPlace/>}/>
          <Route path='/createPost' element={<CreatePost/>}></Route>
          <Route path='/myaccount' element={<></>}/>
          <Route path='/topposts' element={<Main type="top"/>}/>
          <Route path='/technical' element={<Main type="technical"/>}/>
          <Route path='/indicators' element={<></>}/>
          <Route path='/news' element={<Main type="news"/>}/>
        </Routes>
    </WagmiConfig>
    <Web3Modal projectId={projectId} ethereumClient={ethereumClient}/>
    </>
  )
  
}

export default App;

This is the main App component

And this is the login component that allows wallet login

import './login.css';
import { useEffect, useState } from 'react';
import {connectWallet} from '../contractModel';
import { Web3Button } from '@web3modal/react'
import { useAccount, useDisconnect, useSigner } from 'wagmi';
import { ethers } from 'ethers';

function Login(){

    let innerWidth = window.innerWidth;
    useEffect(()=>{});
    
    

    if(innerWidth>600){
        return(
            <div className='login'>
                <p className='logo'>FlashFeed</p>
                <div className='loginBody'>
                <Web3Button/>
                </div>
            </div>
            
        );
    }
    else{
      return(
        <div>

        </div>
      )
    }

}

export default Login;

And I everytime I get this error“WagamiConfig 组件无法读取未定义的属性(读取 ‘queryClient’)”

I have tried looking it up but no related results, I am using the newest version of react and the react router dom as the routing

答案1

得分: 2

请将您的客户端更改为 config={wagmiConfig}

英文:

kindly change your client={wagmiConfig} to to config={wagmiConfig}

答案2

得分: 1

I don't know if you figured this out already but you need to pass in the config prop to WagmiConfig -- with the latest wagmi version (version ^1), the prop name is no longer called client.

tl;dr

...
function App() {
...
 return (
   <>
     <WagmiConfig config={wagmiConfig}>
      ...
     </WagmiConfig>
   </>
 )
}

here are the docs for this: https://wagmi.sh/react/WagmiConfig

英文:

I dont know if you figured this out already but you need to pass in the config prop to WagmiConfig -- with the latest wagmi version (version ^1), the prop name is no longer called client

tl;dr

...
function App() {
...
 return (
   &lt;&gt;
     &lt;WagmiConfig config={wagmiConfig}&gt;
      ...
     &lt;/WagmiConfig&gt;
   &lt;/&gt;
 )
}

here are the docs for this: https://wagmi.sh/react/WagmiConfig

答案3

得分: 0

我不知道是什么原因导致了这个问题,但你应该将以下代码放在 App() 函数之外,并将 version: 1 更改为 version: 2,因为很快将不再支持版本 1。我看不到任何查询客户端,因为它是导致问题的原因。

英文:

i don't know what cause that problem but you should placed

const chains = [polygonMumbai]
const projectId = &#39;id&#39;

const { publicClient } = configureChains(chains, [w3mProvider({ projectId })])
const wagmiConfig = createConfig({
  autoConnect: true,
  connectors: w3mConnectors({ projectId, version: 1, chains }),
  publicClient
})

const ethereumClient = new EthereumClient(wagmiConfig, chains)

outside function App() and change the version: 1 into version: 2, as version 1 is not available soon. And i don't see any queryCLient, because it's the one causing problem.

huangapple
  • 本文由 发表于 2023年5月14日 18:15:54
  • 转载请务必保留本文链接:https://go.coder-hub.com/76246921.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定