首页 > 解决方案 > 如何从生产构建中排除钩子

问题描述

我创建了一个打印一些调试信息的钩子,它又调用了一些 Reacts 钩子。我想自动将其从生产版本中排除。如果我尝试使用这样的 if 语句来做到这一点:

if (process.env.NODE_ENV === 'development') {
        useMyHook(...)
}

我得到错误 React Hook "useMyHook" is called conditionally. React Hooks must be called in the exact same order in every component render。在这种情况下,仍然会按顺序调用挂钩。

如何在生产构建中排除钩子?

标签: javascriptreactjsreact-hooks

解决方案


useMyHook您可以使用条件将逻辑包装在里面if (process.env.NODE_ENV === 'development')

您可以查看React 文档中的“挂钩规则”以获得简洁的解释。


推荐阅读