收藏
回答

getApp()修改值?

在app.js中extend()出全局变量后,然后进入页面后,我想把这个变量修改掉,让之后的每个页面都使用新的值,但是现在在wxml上面渲染出来的还是旧值,如何让他渲染出新值,不要每个页面都去this.setData()

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

3 个回答

  • brave
    brave
    2020-04-01

    你难道是在wxml的js中:

    data: {
      imgUrl: getApp().globalData.imgUrl
    }
    

    然后想通过下面修改app.js中globalData.imgUrl的值实现data的imgUrl同时修改?

    changeUrl () {
      getApp().globalData.imgUrl = "https://www.qq.com/logo.png"
    },
    

    只能说这是行不通的,还是得通过setData重新渲染。

    不过可以尝试用一下建议双向绑定:https://developers.weixin.qq.com/miniprogram/dev/framework/view/two-way-bindings.html

    2020-04-01
    有用
    回复 1
    • Andrew
      Andrew
      2020-04-02
      双向绑定也要setdata吗
      2020-04-02
      回复
  • 亮子🌞
    亮子🌞
    2020-04-01

    x修改app的属性 跟wxml有啥关系 不是在page.js中getApp().globaData.xxx = xxx

    2020-04-01
    有用
    回复 1
    • Andrew
      Andrew
      2020-04-01
      改了没效果,页面不生效
      2020-04-01
      回复
  • Andrew
    Andrew
    2020-04-01

    默认是这个登陆成功后我要把这个里面的值改掉,后面的页面全部使用新的值

    我的修改方式是getApp().globaData.imgurl="https://ischool.topeti.com"

    使用方式

    但是结果,这里一直是旧的,新的不生效

    2020-04-01
    有用
    回复 4
    • Andrew
      Andrew
      2020-04-01
      日志打印有生效,但是wxml中却不生效
      2020-04-01
      回复
    • 亮子🌞
      亮子🌞
      2020-04-02回复Andrew
      页面 要生效  不是应该setData一下么  跟你改全局值有啥关系呢
      2020-04-02
      回复
    • Andrew
      Andrew
      2020-04-02回复亮子🌞
      app.js中有办法设置让所有wxml页面都能使用的配置吗
      2020-04-02
      回复
    • 亮子🌞
      亮子🌞
      2020-04-02回复Andrew
      没有wxml跟app.js毫无关联   跟页面page.js相关联的  只能通过setData来刷新
      2020-04-02
      回复
登录 后发表内容
问题标签