收藏
回答

使用wx.navigateTo中的events传递过来的参数无法更新视图?

let that = this

      wx.navigateTo({

        url: '/pages/load/products/index',

        events: {

          someEvent: function (res) {

            that.data.formData.test = res.data

            console.log(that.data.formData)

          }

        }

      })

打印出来是更新了 但是页面视图上没有更新

开发者工具里面对应的参数也没有更新

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

4 个回答

  • ZZ
    ZZ
    2021-08-20

    that.data.formData只是在js中更新了,想要和页面交互需要setData

    setData({
      formData: that.data.formData
     })
    
    2021-08-20
    有用 1
    回复 7
    • Y
      Y
      2021-08-20
      用过setdata了,结果和楼下的截图是一样的。
      2021-08-20
      回复
    • ZZ
      ZZ
      2021-08-20回复Y
      直接setdata那个fromdata呢
      2021-08-20
      回复
    • Y
      Y
      2021-08-20回复ZZ
      我创建了一个和formdata同级的参数。结果还是一样的 并没有改回来
      2021-08-20
      回复
    • ZZ
      ZZ
      2021-08-20回复ZZ
      that.data.fromData.realName = res.data
              that.setData({
                fromData: that.data.fromData
              })
      2021-08-20
      回复
    • Y
      Y
      2021-08-20回复ZZ
      一样的老哥,结果和之前没什么不同 console.log可以 但是实际上在appdata里面是没有更新参数
      2021-08-20
      回复
    查看更多(2)
  • Shirne[全栈开发]
    Shirne[全栈开发]
    2023-06-15

    先把结果缓存到一个变量里

    然后在onShow里判断这个变量是不是空的

    不空为就在onShow里调用setData

    这样可以防止在页面过渡的过程中设置数据不生效的问题

    2023-06-15
    有用
    回复
  • let it go
    let it go
    2022-07-29

    楼主,请问这个问题解决了吗?我现在也遇到了这样类似的问题,js打印的数据变更了,页面数据没变更。

    2022-07-29
    有用
    回复
  • 除夕。
    除夕。
    2021-08-20

    页面上加条件渲染formData取到值再渲染DOM

    2021-08-20
    有用
    回复 2
    • Y
      Y
      2021-08-20
      不是,我console.log打印出来是没问题 确实是改过来了 但是实际在开发工具里面 看那个appdata对应的参数是没有更新的
      2021-08-20
      回复
    • Y
      Y
      2021-08-20
      2021-08-20
      回复
登录 后发表内容