gpt4 book ai didi

javascript - 当 React JS 被缩小用于生产时如何剥离测试代码?

转载 作者:行者123 更新时间:2023-12-04 03:42:03 25 4
gpt4 key购买 nike

在我的 React 功能组件中,我使用 useEffect 进行一些调试日志记录,但我只在非 --production 构建中运行时才需要它。

// something like
if (process.env.NODE_ENV !== 'production') {
// I want the contents of this block removed on production builds, but it is inside a function
useEffect(() => {
console.log("authState changed", AuthStates[authState]);
}, [authState]);

useEffect(() => {
console.log("authToken changed", authToken);
if (tokenExpiresOn) {
console.log(
`token expires in ${(tokenExpiresOn - Date.now()).toLocaleString()}ms`
);
}
}, [authToken]);

useEffect(() => {
if (tokenExpiresOn) {
console.log(
`token expires in ${(tokenExpiresOn - Date.now()).toLocaleString()}ms`
);
} else {
console.log("tokenExpiresOn cleared");
}
}, [tokenExpiresOn]);
}

最佳答案

您不能有条件地声明钩子(Hook)。你可以在顶层声明,你可以把你的业务逻辑放在钩子(Hook)里,例如下面。

useEffect(() => {
if (process.env.NODE_ENV !== 'production'){
console.log("authToken changed", authToken);
if (tokenExpiresOn) {
console.log(
`token expires in ${(tokenExpiresOn - Date.now()).toLocaleString()}ms`
);
}
}
}, [authToken]);

关于javascript - 当 React JS 被缩小用于生产时如何剥离测试代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65861526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com