我在我的dapp中使用来管理钱包连接。但是,当涉及到读取或编写一些契约函数时,使用钩子并不实际。我发现它不实用的原因是,使用动态args使它变得非常困难,因为我必须使用状态来更新arg。也许我错过了一些功能,如果有一个好的方法做这一点,请建议。总之,我决定使用wagmi核心函数,而不是使用钩子,因为使用编程获取参数的await function()要容易得多。但是,如果我尝试使用我用Wagmi创建的客户端的核心函数,它就会给我一个错误:“没有客户端”。那么,我是否必须替换我使用Wagmi编写的所有逻辑,还是有一种方法强迫它使用客户端,或者是否可以为每个客户端创建两个客户端并同时使用这两个客户端?
发布于 2023-03-14 06:22:19
在两个库的同步化方面,我也有同样的问题。我尝试创建了两个客户端,但这是个坏主意,因为您还应该重复链表、提供者、连接钱包、断开钱包等等。之后,我只更新了两个lib到lates版本(分别为react和core lib的0.12.1和0.10.1 ),而且它只对一个客户端起作用。
发布于 2023-03-14 12:57:26
Wagmi React文档有一个条目。虽然Akrhip的答案是正确的,而且您可以使用两个客户端--但最终您可能会遇到糟糕的情况(特别是当您专门处理wagmi和@wagmi/core的不同版本时)。
正确的方法是通过瓦格米行动。
实际上,Wagmi通过wagmi/actions导出公开了所有核心功能--不需要两个单独的客户端。
因此,如果您想使用prepareWrite操作而不是usePrepareWrite钩子-您需要这样做:
import { prepareWrite } from 'wagmi/actions'
await prepareWrite();https://ethereum.stackexchange.com/questions/147201
复制相似问题