收藏
回答

自定义组件properties里面的属性值无法获取

组件js




组件引用




打印结果



最后一次编辑于  06-14  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • 社区技术运营专员-灵芝
    社区技术运营专员-灵芝
    06-14

    麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    06-14
    赞同
    回复 7
    • Xurry
      Xurry
      06-14

      https://developers.weixin.qq.com/s/dFoXu7mZ7W9G

      求解救,这个问题怎么解决

      06-14
      回复
    • 寂
      06-18回复Xurry

      你好,没看懂想干什么。但是expiredate 肯定是可以拿到并且设置的。


      根据你提供的代码片段改动了一下:

      https://developers.weixin.qq.com/s/BBTiOdmS7Q9I


      06-18
      回复
    • Xurry
      Xurry
      06-19回复

      就是说,上传到体验版之后,请求后台数据之后,ios系统observers就监听不到组件父页面传递过来的数据,一直为初始值0,但是安卓可以,开发工具也可以,真机测试也可以!这涉及到数据请求,而数据请求又涉及到登陆验证等一系列问题,我没办法通过代码片段给你们复现,只能通过setTimeout模拟数据请求的时间(虽然这不科学,但是我只是告诉你们体验版在请求后台数据之后,组件监听不到夫页面传递过去的数据,或者说父页面根本没有传递数据过去)

      06-19
      回复
    • Xurry
      Xurry
      06-19回复

      我发截图吧


      父页面



      组件js


      06-19
      回复
    • Xurry
      Xurry
      06-19回复

      你修改的代码肯定是可行的,我说的是体验版在请求后台数据后,组件没办法监听到数据,你的demo是直接setData是可行的,这个我知道,所以我一直在强掉,请求后台数据,并且是ios运行体验版!体验版! 开发工具、真机测试、体验版在安卓上运行都没有任何问题,唯独ios不行,我不知道怎么回事

      06-19
      回复
    查看更多(2)
  • 陈。。。
    陈。。。
    09-04

    我也碰到了这个问题呀 直接看data中这个值存在,单独取出来就发现没有了 求解呀

    09-04
    赞同
    回复 3
    • 守夜
      守夜
      09-16
      解决了吗?
      09-16
      回复
    • 陈。。。
      陈。。。
      09-16回复守夜
      解决了 在组件里用observe监控那个变量就行了
      09-16
      回复
    • 守夜
      守夜
      09-16回复陈。。。


      这个也是空的 我这个是音频列表 我想在组件初始化的时候默认列表第一个url this.data 有数据 this.data.audiolist 就是[]

      09-16
      回复
  • 大兵
    大兵
    06-14

    有代码片段么?

    06-14
    赞同
    回复 1
    • Xurry
      Xurry
      06-14

      组件wxml

      <view class="countdown countdown-class">

      {{ time }}

      </view>

      js

      Component({
        properties: {
          expiredate: Number,
          format: Array,
        },
        data: {
          time: '',
          expiredate: ''
        },
        lifetimes: {
          ready() {
            console.log(this.data)
            console.log(this.data.expiredate)
          }
        }
      });

      组建所在页面wxml引用组件

      <count-down expiredate="{{ goodsDetail.expireDate }}" format="{{ detailFormat }}"></count-down>


      组建所在页面js

      //获取应用实例
      const app = getApp();
       
      Page({
        data: {
          title: '',
          goodsDetail: '',
          
        },
       
        onLoad(options) {
       
          this.getDetail();
        },
        
        onShow() {
          

        },


        getDetail() {
           
          let that = this;

          let goodsDetailUrl = Api.getGrouponDetailUrl();


          let detaiLArgs = {
            token: that.data.authData.tokenId,
            grouponId: that.data.grouponId

          }


          //请求方法重新封装的,请忽略

          wxRequest.postRequest(goodsDetailUrl, detaiLArgs).then(res => {
       
            if (res.statusCode == 200 && res.data.success) {
       

              let goodsDetail = res.data.data;


              goodsDetail.expireDate = Util.toTimeStamp(goodsDetail.expireDate);
       
              that.setData({
                goodsDetail: goodsDetail
              })
       
            }
          }).catch(function (error) {
            console.log(error);
          })
        }
        
       
      })
         





      06-14
      回复