为什么不推荐if...else中使用hook: Hook 的调用顺序对于 React 来说是依赖于它们在组件中的声明顺序的。如果你在 if...else 中调用了 Hook,那么这个条件会影响到 Hook 的调用顺序,这可能会导致一些难以预料的问题,因为 React 依赖于 Hook 的顺序来维持状态。 解决方案是尽量避免在 if...else 中使用 Hook,可以通过以下方法来重构代码: 使用不同的函数组件来处理不同的条件,每个函数组件内部都可以安全地使用 Hook。 使用高阶组件或装饰器模式来根据条件应用不同的行为。 使用 Hook 的变体,如自定义的 Hook,来封装条件逻辑。