我试图将用户的连接钱包传递到getNftsForOwner函数中,但不知道如何实现。如果我在函数中键入地址,如下所示:
const NFTs = await alchemy.nft.getNftsForOwner('0x00000111');一切正常,但如果我试图传递连接的钱包,它会返回错误400:没有钱包地址。
import { useRouter } from "next/router";
import { alchemy } from "const/alchemy";
import { useEffect, useState } from "react";
import { OwnedNftsResponse } from "alchemy-sdk";
import { useAddress } from "@thirdweb-dev/react";
const BagGrabber: NextPage = () => {
const router = useRouter();
const { walletAddress } = router.query;
const [NFTs, setNFTs] = useState<OwnedNftsResponse>()
const address = useAddress(); //also tried passing this hook, maybe in useEffect?
useEffect( () => {
async function grabber() {
const NFTs = await alchemy.nft.getNftsForOwner(walletAddress as string);
setNFTs(NFTs);
}
grabber();
}, [NFTs]);也许我需要用useEffect useState格式化地址?我不知道?所有者地址需要是字符串。
发布于 2023-04-28 00:23:09
让它工作,唯一的事情是,它不断调用api,而页是积极地被查看。因此,如果不解决这个问题,就会付出高昂的代价。出于某种原因,钱包地址必须打电话给所有者才能接受。如果有人知道怎么解决这个问题?请告诉我。
import { alchemy } from "const/alchemy";
import { useEffect, useState } from "react";
import { OwnedNftsResponse } from "alchemy-sdk";
import { useAddress } from "@thirdweb-dev/react";
const BagGrabber: NextPage = () => {
const [NFTs, setNFTs] = useState<OwnedNftsResponse>()
const owner = useAddress()
useEffect( () => {
if (owner) {
async function grabber() {
const NFTs = await alchemy.nft.getNftsForOwner(owner as unknown as string);
setNFTs(NFTs);
}
console.log(NFTs);
grabber();
}
}, [NFTs, owner]);https://ethereum.stackexchange.com/questions/149560
复制相似问题