首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wagmi usePrepareContractWrite不是一个函数

Wagmi usePrepareContractWrite不是一个函数
EN

Ethereum用户
提问于 2023-01-26 03:48:40
回答 1查看 420关注 0票数 0

当时我正在为RainbowKit和Wagmi学习youtube教程,然后我偶然发现了这个问题。

“未处理的运行时错误TypeError:(0,TypeError不是一个函数”

这是我的代码:

代码语言:javascript
复制
import Image from "next/image";
import React from "react";

import { usePrepareContractWrite, useContractWrite, useWaitForTransaction, useContractRead, erc721ABI } from 'wagmi';
import Abi from "../../contract-abi";



const Connected = () => {

    const [totalMinted, setTotalMinted] = React.useState(0);
    
    const { config, error } = usePrepareContractWrite({
        addressOrName: '...', //contract wallet
        abi: erc721ABI, //import abi
        functionName: "mint",
    });



    const {
        data: minData,
        write: mint, 
        isLoading: isMintLoading,
        isSuccess: isMintStarted
    } = useContractWrite(config);

    const { isSuccess: txSuccess } = useWaitForTransaction({
        hash: minData?.hash
    });

    const { data: totalSupplyData } =useContractRead({
        ...config,
        functionName: "totalSupply",
        watch: true
    });

    React.useEffect(() =>{
        if (totalSupplyData) {
            setTotalMinted(totalSupplyData.toNumber90)
        }
    }, [totalSupplyData])

    const isMinted = txSuccess;
    
  return (
    <div className="w-screen h-[95vh] p-0 m-0 bg-mint-white ">
      <div className="relative w-full h-full pt-32">
        <div className="w-full text-center">
          <h1 className="font-brightness text-stoic-blue">pick a card</h1>
          <h3 className='font-brightness text-salmon-pink'>select your favorite card to mint.</h3>
        </div>
        <div className="w-full text-center">

        </div>
        <div className="w-full h-auto flex justify-center">
            <button 
            onClick={() => mint?.()}
            disabled={isMintLoading || isMintStarted}
            data-mint-loading={isMintLoading}
            data-mint-started={isMintStarted}
            >
            {isMintLoading && 'Waiting for approval'}
            {isMintStarted && 'Minting...'}
            {!isMintLoading && !isMintStarted && 'Mint'}
            </button>
            {error && (
                <div>An error occurred preparing the transaction: {error.message}</div>
            )}
        </div>
        <div className="w-full text-center">
            <p>{totalMinted} minted</p>
        </div>
      </div>
    </div>
  );

}


export default Connected;

有人能帮忙吗?

EN

回答 1

Ethereum用户

发布于 2023-01-26 05:52:24

我已经纠正了这个问题。

经过深入研究,我发现我使用的是一个旧版本的Wagmi,它没有usePrepareCreateWrite函数。

我做了一个npm i wagmi@latest更新,它现在正在工作。

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/143685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档