feat: 定位到组件异常渲染的问题
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user