收藏
回答

自定义组件中data外设置数据字段无效

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug 自定义组件 微信iOS客户端 8.0.10 2.19.4

官方文档中说:页面或组件渲染无关的数据,应挂在非 data 的字段下,如 this.userData = {userId: 'xxx'};

见文档:https://developers.weixin.qq.com/miniprogram/dev/framework/performance/tips/runtime_setData.html

实际开发中在自定义组件中data外设置userData无效,

Component({

data: {},

userData: {'test': 123},

})

console.log(this.userData)输出undefined

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

3 个回答

  • 九歌^
    九歌^
    2023-02-21

    大哥 不是你这么 玩的。。。

    组件内你应该写在 Component外或attached里初始化

    this.userData = {
      test: 123
    }
    Component({
      data: {}
    })
    
    // 或者
    Component({
      data: {},
      attached() {
        this.userData = {
          test: 123
        }
      }
    })
    


    2023-02-21
    有用 1
    回复 4
    • 小夭
      小夭
      2023-02-21
      谢谢指导哈~另外请问一下在Page里面我那个写法可以,为什么组件里面不可以呢?
      2023-02-21
      回复
    • 九歌^
      九歌^
      2023-02-21回复小夭
      Page里面其实也不建议你这么写。具体因为啥 得问小程序的架构师了,我也不知道
      2023-02-21
      回复
    • 小夭
      小夭
      2023-02-21回复九歌^
      好的 谢谢哈
      2023-02-21
      回复
    • Ethan
      Ethan
      2023-10-20
      typescript项目中没法用这两种写法了
      2023-10-20
      回复
  • 胜利之日
    胜利之日
    2023-12-07

    我试了一下,貌似只能在attached里定义了,但是userData这种,无法被observers侦听变化。

    attached () {
      this.userData = {test: 123}
    }
    
    2023-12-07
    有用
    回复
  • 罗晓列
    罗晓列
    2023-02-21

    改下基础库版本吧,2.19.4的版本太老了,现在都2.30.1了

    2023-02-21
    有用
    回复
登录 后发表内容