import Taro, { useRouter } from '@tarojs/taro' import { parseQueryString } from '@/utils' import { useModel } from '@/store' import { useEffect, useRef, useState } from 'react' import { getQrcode } from '@/services/miniapp' export default () => { const router = useRouter() const routerRef = useRef() const { qrCode } = useModel('person') const [toggleRefresh, setToggleRefresh] = useState() routerRef.current = router const scene = router?.params?.scene const loginScene = Taro.getStorageSync('scene') useEffect(() => { // 扫码进入 if (scene) { if (scene === loginScene && qrCode) { const qrParams = parseQueryString(qrCode) || {} routerRef.current.params = { ...routerRef.current.params || {}, ...qrParams, parseQRFinished: true, } setToggleRefresh(Math.random().toString()) console.log('-----------qrCode---------------', qrCode) } else { console.log('-----------getQrcode---------------', scene) getQrcode(scene).then((res) => { const qrParams = parseQueryString(res.scene) || {} routerRef.current.params = { ...routerRef.current.params || {}, ...qrParams, parseQRFinished: true, } setToggleRefresh(Math.random().toString()) }) } } }, [qrCode, scene]) console.log('-----------routerRef.current---------------', routerRef.current) return routerRef.current }