import React, { useEffect, useState } from "react"; import Taro from "@tarojs/taro"; import { View } from "@tarojs/components"; import { check_login_status } from "@/services/loginService"; export function getCurrentFullPath(): string { const pages = Taro.getCurrentPages(); const currentPage = pages.at(-1); if (currentPage) { console.log(currentPage, "currentPage get"); const route = currentPage.route; const options = currentPage.options || {}; const query = Object.keys(options) .map((key) => `${key}=${options[key]}`) .join("&"); return query ? `/${route}?${query}` : `/${route}`; } return ""; } export default function withAuth

( WrappedComponent: React.ComponentType

, ) { const ComponentWithAuth: React.FC

= (props: P) => { const [authed, setAuthed] = useState(false); useEffect(() => { const is_login = check_login_status(); setAuthed(is_login); if (!is_login) { const currentPage = getCurrentFullPath(); // Taro.redirectTo({ // url: `/pages/login/index/index${ // currentPage ? `?redirect=${encodeURIComponent(currentPage)}` : '' // }`, // }) } }, []); // if (!authed) { // return // 空壳,避免 children 渲染出错 // } return ; }; return ComponentWithAuth; }