feat: 定位到组件异常渲染的问题

This commit is contained in:
2025-11-15 20:23:15 +08:00
parent d427b9323c
commit 2a8c337b72
6 changed files with 251 additions and 160 deletions

View File

@@ -1,4 +1,4 @@
import React, { useState, useEffect } from "react";
import React, { useState, useEffect, useCallback, memo } from "react";
import { View, Image, Text } from "@tarojs/components";
import Taro from "@tarojs/taro";
import { useUserInfo, useUserActions } from "@/store/userStore";
@@ -26,82 +26,87 @@ function NTRPTestEntryCard(props: {
console.log(userInfo);
useEffect(() => {
fetchUserInfo();
if (!userInfo.id) {
fetchUserInfo();
}
evaluateService.getLastResult().then((res) => {
setTestFlag(res.code === 0 && res.data.has_ntrp_level);
});
}, []);
}, [userInfo.id]);
function handleTest() {
switch (type) {
case EvaluateScene.list:
setCallback({
type,
next: () => {
Taro.redirectTo({ url: "/game_pages/list/index" });
},
onCancel: () => {
// Taro.redirectTo({ url: "/game_pages/list/index" });
Taro.navigateBack();
},
});
break;
case EvaluateScene.share:
setCallback({
type,
next: () => {
Taro.redirectTo({ url: "/main_pages/index" });
},
onCancel: () => {
Taro.redirectTo({ url: "/main_pages/index" });
},
});
break;
case EvaluateScene.detail:
case EvaluateScene.publish:
setCallback(evaluateCallback as EvaluateCallback);
break;
case EvaluateScene.user:
setCallback({
type,
next: () => {
Taro.redirectTo({ url: "/main_pages/index" });
},
onCancel: () => {
// Taro.redirectTo({ url: "/user_pages/myself/index" });
Taro.navigateBack();
},
});
break;
case EvaluateScene.userEdit:
setCallback({
type,
next: () => {
Taro.redirectTo({ url: "/game_pages/list/index" });
},
onCancel: () => {
// Taro.redirectTo({ url: "/user_pages/edit/index" });
Taro.navigateBack();
},
});
break;
default:
setCallback({
type,
next: () => {
Taro.redirectTo({ url: "/main_pages/index" });
},
onCancel: () => {
Taro.redirectTo({ url: "/main_pages/index" });
},
});
}
Taro.navigateTo({
url: `/other_pages/ntrp-evaluate/index?stage=${
testFlag ? StageType.INTRO : StageType.TEST
}`,
});
}
const handleTest = useCallback(
function () {
switch (type) {
case EvaluateScene.list:
setCallback({
type,
next: () => {
Taro.redirectTo({ url: "/game_pages/list/index" });
},
onCancel: () => {
// Taro.redirectTo({ url: "/game_pages/list/index" });
Taro.navigateBack();
},
});
break;
case EvaluateScene.share:
setCallback({
type,
next: () => {
Taro.redirectTo({ url: "/main_pages/index" });
},
onCancel: () => {
Taro.redirectTo({ url: "/main_pages/index" });
},
});
break;
case EvaluateScene.detail:
case EvaluateScene.publish:
setCallback(evaluateCallback as EvaluateCallback);
break;
case EvaluateScene.user:
setCallback({
type,
next: () => {
Taro.redirectTo({ url: "/main_pages/index" });
},
onCancel: () => {
// Taro.redirectTo({ url: "/user_pages/myself/index" });
Taro.navigateBack();
},
});
break;
case EvaluateScene.userEdit:
setCallback({
type,
next: () => {
Taro.redirectTo({ url: "/game_pages/list/index" });
},
onCancel: () => {
// Taro.redirectTo({ url: "/user_pages/edit/index" });
Taro.navigateBack();
},
});
break;
default:
setCallback({
type,
next: () => {
Taro.redirectTo({ url: "/main_pages/index" });
},
onCancel: () => {
Taro.redirectTo({ url: "/main_pages/index" });
},
});
}
Taro.navigateTo({
url: `/other_pages/ntrp-evaluate/index?stage=${
testFlag ? StageType.INTRO : StageType.TEST
}`,
});
},
[setCallback]
);
return type === EvaluateScene.list ? (
<View className={styles.higher} onClick={handleTest}>
@@ -169,4 +174,5 @@ function NTRPTestEntryCard(props: {
);
}
export default NTRPTestEntryCard;
export default memo(NTRPTestEntryCard);
// export default NTRPTestEntryCard;