收藏
回答

开通会员卡后,onShow中数据重复问题

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug navigateToMiniProgram 微信iOS客户端 8.0.2 2.16.0

用户通过navigateToMiniProgram方法跳转到开卡小程序完成开卡后,返回我们的小程序,我们在app.onShow中拿到开通结果,做出开卡后的处理。

此时用户再次触发app.onShow方法,该方法会再次携带开卡参数执行一遍。

我们目前可以用其他方法解决这个问题,但是这个坑得填。

最后一次编辑于  04-11
回答关注问题邀请回答
收藏

3 个回答

  • 少侠
    少侠
    04-07

    你可以去了解下小程序的展示机制,跳转到别的小程序,当前小程序会进入后台,返回以后会进入前台,自然会触发onShow。

    你们最好埋个钩子在onShow里面,必要的时候再执行对应逻辑

    04-07
    有用 1
    回复 1
    • 比尔盖雨
      比尔盖雨
      04-11
      麻烦您看下我说的问题。当用户开通会员卡以后,onShow会触发一次(携带开卡回调参数),此时小程序切到后台,再次进入onShow时(开卡回调参数仍然还在),所以开卡后的处理会执行两遍。
      04-11
      回复
  • Brother斌🎈
    Brother斌🎈
    04-07

    只能说是你自己没弄明白onShow机制导致的坑

    04-07
    有用
    回复 2
    • 比尔盖雨
      比尔盖雨
      04-11
      麻烦您看下我说的问题。当用户开通会员卡以后,onShow会触发一次(携带开卡回调参数),此时小程序切到后台,再次进入onShow时(开卡回调参数仍然还在),所以开卡后的处理会执行两遍。
      04-11
      回复
    • Brother斌🎈
      Brother斌🎈
      04-12回复比尔盖雨
      再看也是一样,18年就有人提出这个问题,官方不理 只能自己兼容
      04-12
      回复
  • Rꫀᦔꫀꪑρtiꪮꪀ .
    Rꫀᦔꫀꪑρtiꪮꪀ .
    04-07

    只要返回当前页 onshow就会启动,更改为onload 或者onshow里进行判断。

    04-07
    有用
    回复 1
    • 比尔盖雨
      比尔盖雨
      04-11
      您说的onShow的触发时机,这个我清楚的
      04-11
      回复
登录 后发表内容
问题标签