对于wagmi和next.js,如何在getServerSideProps中调用useContractReads?

cuxqih21  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(289)

我尝试在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 }) {
(...)

浏览器告诉我“类型错误:当服务器控制台告诉我“警告:无效的挂接调用。只能在函数组件的主体内部调用挂接。以下原因之一可能会导致这种情况:(...)”
我做错了什么

j5fpnvbx

j5fpnvbx1#

正如juliomalves提到的,你不能在getServerSideProps中使用钩子,但是你可以在wagmi-core中使用readContract来获取链上的数据而不使用钩子。

相关问题