收藏
回答

获取地址之后回调无法赋值?

直接看代码:

简单来说就是我有一个shops数组,想要直接通过选择地址给数组元素的location属性赋值,就这么简单一个操作,每次选完地址点击确认都是获取成功一会(不到1s钟),显示地址一小会然后立马就消失了,不知道咋回事,感觉已经设置成功了,但是马上就被清空了

changeShopLocation(e) {

    var that = this

    var x = "shops["+e.currentTarget.dataset.id+"].location"

    wx.chooseLocation({

        success: function(res) {

            that.setData({

                [x]:res

            })

        },

    })

},



回答关注问题邀请回答
收藏

4 个回答

  • 裴桾惠
    裴桾惠
    2019-10-28
    我就回答试试
    2019-10-28
    有用 1
    回复
  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-10-28

    你的e.currentTarget.dataset.id是数字吧

    2019-10-28
    有用
    回复 4
    • nyk
      nyk
      2019-10-28
      我已经可以获取成功了,只是获取之后又会消失,你觉得跟这个有关系吗
      2019-10-28
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-10-28回复nyk
      获取肯定是没问题的
      主要是如果id是数字会存在一个问题
      假设shops原来为空数组,即shops = []
      而假设e.currentTarget.dataset.id为2
      setData后,shops的值为 [empty, empty, {location内容}]
      这时候,shops[0]和shops[1]是空的
      2019-10-28
      回复
    • nyk
      nyk
      2019-10-28回复o0o有脾气的酸奶
      shop不是空
      2019-10-28
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-10-28回复nyk
      那你自己看着办,我只是说存在这么一个问题
      2019-10-28
      回复
  • chen
    chen
    2019-10-28

    你先把location打印下看看吧,以及加个fail的回调处理,我怕你没授权获取地址的

    2019-10-28
    有用
    回复 4
    • nyk
      nyk
      2019-10-28
      在success回调里面打印location正常,获取都是对的地址
      2019-10-28
      回复
    • nyk
      nyk
      2019-10-28
      授权也有
      2019-10-28
      回复
    • nyk
      nyk
      2019-10-28
      我直接赋值给单独变量已经可以正常获取成功了,只是赋值给数组不行
      2019-10-28
      回复
    • chen
      chen
      2019-10-28回复nyk
      [x] 这个是啥意思
      2019-10-28
      回复
  • nyk
    nyk
    2019-10-28

    补充一下,如果是直接有一个location变量,然后直接给这个location赋值,是可以赋值成功的,此问题貌似出在数组赋值上

    2019-10-28
    有用
    回复 1
    • nyk
      nyk
      2019-10-28
      回调函数里面无法给数组赋值
      2019-10-28
      回复
登录 后发表内容
问题标签