题目
DApp 支持多条链。用户点击「切换到目标链」时出现几种失败:有的用户在钱包里点了取消;有的钱包提示不支持切换;还有的目标链在页面上可见但没有配置。请说明 useSwitchChain 的用法与各失败分支的处理方式。
考察目标
- useSwitchChain 的调用方式与参数来源。
- 失败分支的分类与对应处理。
- 切链后的数据一致性处理。
说明切链的调用方式与错误分类,覆盖用户拒绝、方法不支持、目标链未配置与钱包需要添加链的场景。
DApp 支持多条链。用户点击「切换到目标链」时出现几种失败:有的用户在钱包里点了取消;有的钱包提示不支持切换;还有的目标链在页面上可见但没有配置。请说明 useSwitchChain 的用法与各失败分支的处理方式。
useSwitchChain 通过 mutate({ chainId }) 触发切换,chainId 取值应来自配置中的链列表;失败时按错误分流:用户拒绝对应 4001,回到可重试状态;方法不支持对应 4200,提示该钱包的能力限制;目标链未连接对应 4901,需要先建立目标链连接;部分钱包会用实现特有的错误码表示目标链尚未添加,需要查对应钱包文档。实现差异与工程取舍见深入回答。
发现这道题有问题? 反馈此题