React Native用Zustand遇Invalid hook call错误,违反了哪条Hook规则?
关于Zustand Invalid Hook Call错误的解答
你违反了React Hook的核心规则之一:Hook只能在函数组件的顶层作用域调用,不得在条件判断、循环、嵌套函数或普通非组件函数内执行。
Zustand提供的useStore属于React Hook,必须严格遵循Hook的使用规范:
- 不能将
useStore放在if/else这类条件分支里 - 不能放在
for循环、事件回调函数或自定义的普通工具函数内部 - 必须直接书写在函数组件的最外层代码中,确保每次组件渲染时Hook的调用顺序一致
除此之外,也可以同步排查以下两个常见诱因:
- 项目中是否存在多个React副本(比如依赖重复安装导致版本冲突)
- React与React Native的版本是否匹配,避免渲染器与React核心版本不兼容
内容的提问来源于stack exchange,提问作者Free Palestine
相关产品推荐
相关产品推荐

