我正在使用wagmi usePrepareContractWrite和write为我的合同写信。我允许用户上传字段并创建一个NFT。有办法在写函数中设置args吗?例如,我有
const { config, status } = usePrepareContractWrite({
addressOrName: "0xADDRESS",
contractInterface: "abi file",
functionName: "safeMint",
});
const { data, isLoading, isSuccess, write } = useContractWrite(config);
write();如果我将args:["address", "NFT data"]添加到usePrepareContractWrite中,效果会很好。但是,是否有一种方法可以在write()中设置这一点呢?因为NFT信息仅在用户上传、图像和字段之后才可用。
发布于 2022-09-10 22:47:27
你可以用useState来做这样的事情,只是把代码放在一起并不能测试.
import React, { useState } from 'react';
function Example() {
// Declare a new state variable, which we'll call "param"
const [param, setParam] = useState("");
const { config, status } = usePrepareContractWrite({
addressOrName: "0xADDRESS",
contractInterface: "abi file",
functionName: "safeMint",
args: [param]
});
const { data, isLoading, isSuccess, write } = useContractWrite(config);
return (
<div>
<form>
<input
type="text"
placeholder="parameter type here"
name="param"
onChange={(e) => setParam(e.target.value)}
/>
<button onClick={() => write()}>
Click me
</button>
</form>
</div>
);
}https://ethereum.stackexchange.com/questions/135231
复制相似问题