'a'
mh-two-thousand-and-two
2024-04-12 44d2c92345cd156a59fc327b3060292a282d2893
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/**
 * 用于延迟调用 setData
 * 在 setData 真实调用的时机需执行 fixSetDataEnd
 * @param {*} mpInstance
 */
export function fixSetDataStart (mpInstance) {
  const setData = mpInstance.setData
  const setDataArgs = []
  mpInstance.setData = function () {
    setDataArgs.push(arguments)
  }
  mpInstance.__fixInitData = function () {
    this.setData = setData
    const fn = () => {
      setDataArgs.forEach(args => {
        setData.apply(this, args)
      })
    }
    if (setDataArgs.length) {
      if (this.groupSetData) {
        this.groupSetData(fn)
      } else {
        fn()
      }
    }
  }
}
/**
 * 恢复真实的 setData 方法
 * @param {*} mpInstance
 */
export function fixSetDataEnd (mpInstance) {
  if (mpInstance.__fixInitData) {
    mpInstance.__fixInitData()
    delete mpInstance.__fixInitData
  }
}