reactjs - 使用wagmi和next.js,如何在getServerSideProps中调用useContractReads?

标签 reactjs next.js server-side-rendering

我正在尝试使用 getServerSideProps 中的 useContractReads 获取一些链上数据

import React from "react"

import {
    useContractReads,
} from 'wagmi'

import { ProjectContractAddress, ProjectContractAbi } from '../constants'

export async function getServerSideProps() {
    const contract = {
        addressOrName: ProjectContractAddress,
        contractInterface: ProjectContractAbi,
        functionName: 'proposalCount'
    }
    const { data, isError, isLoading, isSuccess } = useContractReads({
        contracts: [
            contract,
        ],
    })
    result = data?.toString() ?? undefined
    return {
        props: { result }, // will be passed to the page component as props
    }
}


export default function AllProjects({ result }) {
(...)

浏览器告诉我“TypeError:无法读取 null 的属性(读取“useRef”)” 当服务器控制台告诉我“警告:无效的钩子(Hook)调用。钩子(Hook)只能在函数组件的主体内部调用。这可能是由于以下原因之一而发生的:(...)”

我做错了什么?

最佳答案

正如 juliomalves 提到的,您不能在 getServerSideProps 中使用钩子(Hook)。但是您可以使用 readContractwagmi-core中,无需使用钩子(Hook)即可获取链上数据。

关于reactjs - 使用wagmi和next.js,如何在getServerSideProps中调用useContractReads?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73765126/

相关文章:

reactjs - NextJS : how to Link to new page with current page slugs?

html - Next.js 从/到另一个页面重定向

javascript - Next.js API 在错误或没有 HTTP 方法匹配时路由默认响应

server-side-rendering - ERROR 错误 : Uncaught (in promise): TypeError: i. BehaviorSubject 不是 Angular 10 SSR 中的构造函数

javascript - 带有包裹的Vue SSR(服务器端渲染)?

reactjs - 为什么我的 Webpack ReactJS App 这么大?

javascript - 无法读取未定义的属性 'mockResolvedValue'

javascript - 在服务器端渲染中使用 redux 和 redux-persist

reactjs - React Router v4 与 babel 给出多个路由错误

cookies - 尝试使用react和fetch获取然后发送cookie