diff --git a/src/app.ts b/src/app.ts index 4388db6..3ed1d93 100644 --- a/src/app.ts +++ b/src/app.ts @@ -5,6 +5,7 @@ import "./app.scss"; import "./scss/qweather-icons/qweather-icons.css"; import { useGlobalStore } from "./store/global"; import { removeStorage } from "./store/storage"; +import { sceneRedirectLogic } from './utils/helper' interface AppProps { children: ReactNode; @@ -17,7 +18,6 @@ function clearSpecStorage() { class App extends Component { onLaunch(options) { - console.log('launch options: ', options) console.log("小程序启动,初始化逻辑写这里"); clearSpecStorage() Taro.onNeedPrivacyAuthorization((resolve) => { @@ -36,6 +36,7 @@ class App extends Component { // console.error('字体加载失败', err); // } // }) + sceneRedirectLogic(options.query, options.path); } componentDidMount() { diff --git a/src/game_pages/detail/index.tsx b/src/game_pages/detail/index.tsx index 77d3557..ffd13b1 100644 --- a/src/game_pages/detail/index.tsx +++ b/src/game_pages/detail/index.tsx @@ -18,7 +18,7 @@ import Participants from "./components/Participants"; import SupplementalNotes from "./components/SupplementalNotes"; import OrganizerInfo from "./components/OrganizerInfo"; import SharePopup from "./components/SharePopup"; -import { navto, toast, useSceneRedirect } from "./utils/helper"; +import { navto, toast } from "./utils/helper"; import ArrowLeft from "@/static/detail/icon-arrow-left.svg"; import Logo from "@/static/detail/icon-logo-go.svg"; import styles from "./index.module.scss"; @@ -37,8 +37,6 @@ function Index() { const { statusNavbarHeightInfo } = useGlobalState(); const { statusBarHeight, navBarHeight } = statusNavbarHeightInfo; - useSceneRedirect("game_pages/detail/index"); - const isMyOwn = userInfo.id === myInfo.id; const sharePopupRef = useRef(null); @@ -254,4 +252,6 @@ function Index() { ); } -export default withAuth(Index); +// export default withAuth(Index); +const ExportPage = withAuth(Index); +export default ExportPage; diff --git a/src/game_pages/detail/utils/helper.ts b/src/game_pages/detail/utils/helper.ts index 873eefa..cf7998e 100644 --- a/src/game_pages/detail/utils/helper.ts +++ b/src/game_pages/detail/utils/helper.ts @@ -1,6 +1,4 @@ -import Taro, { - useLoad, -} from "@tarojs/taro"; +import Taro from "@tarojs/taro"; export function navto(url) { Taro.navigateTo({ @@ -18,34 +16,6 @@ export function insertDotInTags(tags: string[]) { return tags.join("-·-").split("-"); } -export const useSceneRedirect = (defaultPage: string) => { - useLoad((options) => { - if (options.scene) { - try { - const decoded = decodeURIComponent(options.scene || ""); - const params: Record = {}; - decoded.split("&").forEach((pair) => { - const [key, value] = pair.split("="); - if (key) params[key] = value ? decodeURIComponent(value) : ""; - }); - - // 拼接成 URL query - const query = Object.entries(params) - .map(([k, v]) => `${k}=${encodeURIComponent(v)}`) - .join("&"); - - console.log('scan query', query) - - Taro.redirectTo({ - url: query ? `/${defaultPage}?${query}` : `/${defaultPage}`, - }); - } catch (err) { - console.error("scene 解析失败:", err); - } - } - }); -}; - export function genNTRPRequirementText(min, max) { if (min && max && min !== max) { return `${min} - ${max} 之间`; diff --git a/src/utils/helper.ts b/src/utils/helper.ts new file mode 100644 index 0000000..e48b0d3 --- /dev/null +++ b/src/utils/helper.ts @@ -0,0 +1,27 @@ +import Taro from "@tarojs/taro"; + +// 普通函数,不调用 useLoad +export const sceneRedirectLogic = (options, defaultPage: string) => { + console.log(options, 12345) + if (!options.scene) return; + + try { + const decoded = decodeURIComponent(options.scene || ""); + const params: Record = {}; + + decoded.split("&").forEach((pair) => { + const [key, value] = pair.split("="); + if (key) params[key] = value ? decodeURIComponent(value) : ""; + }); + + const query = Object.entries(params) + .map(([k, v]) => `${k}=${encodeURIComponent(v)}`) + .join("&"); + + Taro.redirectTo({ + url: query ? `/${defaultPage}?${query}` : `/${defaultPage}`, + }); + } catch (e) { + console.error(e); + } +}; \ No newline at end of file