|
@@ -1,22 +1,43 @@
|
1
|
1
|
import Taro, { useRouter } from '@tarojs/taro'
|
2
|
2
|
import { parseQueryString } from '@/utils'
|
3
|
3
|
import { useModel } from '@/store'
|
|
4
|
+import { useEffect, useRef, useState } from 'react'
|
|
5
|
+import { getQrcode } from '@/services/miniapp'
|
4
|
6
|
|
5
|
7
|
export default () => {
|
6
|
8
|
const router = useRouter()
|
|
9
|
+ const routerRef = useRef()
|
7
|
10
|
const { qrCode } = useModel('person')
|
8
|
11
|
|
9
|
|
- // 扫码进入的
|
10
|
|
- if (router?.params?.scene) {
|
11
|
|
- if (qrCode) {
|
12
|
|
- const qrParams = parseQueryString(qrCode) || {}
|
13
|
|
- router.params = {
|
14
|
|
- ...router.params || {},
|
15
|
|
- ...qrParams,
|
16
|
|
- parseQRFinished: true,
|
|
12
|
+ const [toggleRefresh, setToggleRefresh] = useState()
|
|
13
|
+
|
|
14
|
+ routerRef.current = router
|
|
15
|
+ const scene = router?.params?.scene
|
|
16
|
+
|
|
17
|
+ useEffect(() => {
|
|
18
|
+ // 扫码进入
|
|
19
|
+ if (scene) {
|
|
20
|
+ if (qrCode) {
|
|
21
|
+ const qrParams = parseQueryString(qrCode) || {}
|
|
22
|
+ routerRef.current.params = {
|
|
23
|
+ ...routerRef.current.params || {},
|
|
24
|
+ ...qrParams,
|
|
25
|
+ parseQRFinished: true,
|
|
26
|
+ }
|
|
27
|
+ setToggleRefresh(Math.random().toString())
|
|
28
|
+ } else {
|
|
29
|
+ getQrcode(scene).then((res) => {
|
|
30
|
+ const qrParams = parseQueryString(res.scene) || {}
|
|
31
|
+ routerRef.current.params = {
|
|
32
|
+ ...routerRef.current.params || {},
|
|
33
|
+ ...qrParams,
|
|
34
|
+ parseQRFinished: true,
|
|
35
|
+ }
|
|
36
|
+ setToggleRefresh(Math.random().toString())
|
|
37
|
+ })
|
17
|
38
|
}
|
18
|
39
|
}
|
19
|
|
- }
|
|
40
|
+ }, [qrCode, scene])
|
20
|
41
|
|
21
|
|
- return router
|
|
42
|
+ return routerRef.current
|
22
|
43
|
}
|