当前位置: 首页 > 知识库问答 >
问题:

重构这个函数以降低它在if else条件下的认知复杂性

卫劲
2023-03-14

我在声纳的认知复杂性错误,找到我的代码和附上的截图更多的参考。请帮我解决这个问题

 useEffect(() => {
    if (isFocused && isLoggedIn) {
      getProfileData();
    }
    if (isFocused) {
      dispatch(rewardsLandingScreenTracker());
    }
  }, [dispatch, getProfileData, isLoggedIn, isFocused]);

有人能给我更新一下在三元运算符的情况下会有什么解决方案吗

  const savedPrice =
    (actualPrice ? getConvertedPrice(actualPrice) : 0) -
    (proPrice ? getConvertedPrice(proPrice) : 0);

共有1个答案

戎劲
2023-03-14

您可以将其改写为:

useEffect(() => {
    if (isFocused) {
        if (isLoggedIn) getProfileData();
        dispatch(rewardsLandingScreenTracker());
    }
}, [dispatch, getProfileData, isLoggedIn, isFocused]);

useEffect(() => {
    if (!isFocused) return
        
    if (isLoggedIn) getProfileData();
    dispatch(rewardsLandingScreenTracker());
}, [dispatch, getProfileData, isLoggedIn, isFocused]);

第二种可能会在不一致的返回时引起皮棉错误(取决于您的皮棉设置)。然后必须在回调函数的末尾添加显式的return

 类似资料: