从自定义Wallet Context Hook访问状态变量触发TypeError错误排查
问题原因及解决方法
你犯的错误是使用了数组解构语法来获取对象类型的上下文值。
你的useWallets Hook返回的是WalletContext提供的对象(包含walletFound、isOpenWallets等所有状态和方法的那个对象),而不是数组。数组解构const [ walletFound ] = ...只适用于可迭代的类型(比如数组),但对象本身不是可迭代的,所以会抛出object is not iterable的错误。
正确的写法
把数组解构改成对象解构即可:
const { walletFound } = useWallets();
如果需要同时获取多个变量,同样用对象解构:
const { walletFound, balance, toggleWallets } = useWallets();
这样就能正确从上下文对象中提取你需要的属性了。
内容的提问来源于stack exchange,提问作者Falcon Stakepool
相关产品推荐
相关产品推荐

