收藏
回答

nodeId是什么?

问题模块
API和组件


nodeId是什么?大神求助啊

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

9 个回答

  • 〇
  O
0
  o
。
  .
  吐泡泡的猫
    〇 O 0 o 。 . 吐泡泡的猫
    2018-04-08

    自定义组件中的定时器要在detached周期内清除

    2018-04-08
    赞同
    回复
  • 知道夜的黑
    知道夜的黑
    2018-04-08

    页面里面有定时器,切换页面的时候,要在钩子函数销毁阶段,关闭定时器;

    如果是调用了接口,要在钩子函数销毁阶段,调用 abort 方法

    2018-04-08
    赞同
    回复
  • 〇
  O
0
  o
。
  .
  吐泡泡的猫
    〇 O 0 o 。 . 吐泡泡的猫
    2018-04-03

    我在onHide和onUnload使用了clearTimerout(),还是会报错,所以楼主解决这个问题了吗?

    2018-04-03
    赞同
    回复
  • 赵青山
    赵青山
    2017-12-25

    这个问题其实没解决,好像是一个页面被销毁后还有代码在执行就会报错

    2017-12-25
    赞同
    回复
  • 知道夜的黑
    知道夜的黑
    2017-12-25

    我也碰到这种错误;

    分析原因是:

    上一个page的代码还没执行完,就使用wx.reLaunch跳到了另外一个页面;就会报 ‘nodeId’ of undefined

    2017-12-25
    赞同
    回复
  • 赵青山
    赵青山
    2017-12-16

    <view class="example">

    <view class="marquee_box">

    <view class="marquee_content" style="{{orientation}}:{{marqueeDistance}}rpx;font-size: {{size}}rpx;">

    {{content}}

    </view>

    </view>

    </view>


    2017-12-16
    赞同
    回复
  • 赵青山
    赵青山
    2017-12-16

    Component({

    /**

      * 组件的属性列表

      */

    properties: {

    marqueeList: {

    type: Array,

    value: null,

    observer: function (newVal) {

    if (newVal instanceof Array && newVal.length > 0) {

    this.initMarquee()

    }

    }

    },

    orientation: {

    type: String,

    value: 'left'

    },

    size: {

    type: Number,

    value: 28

    }

    },


    /**

      * 组件的初始数据

      */

    data: {

    content: '',

    // content: '这是一条会滚动的文字滚来滚去的文字跑马灯,哈哈哈哈哈哈哈哈',

    marqueePace: 2,//滚动速度

    // marqueeDistance: 750,//初始滚动距离

    interval: 20,// 时间间隔

    count: 0

    },


    /**

      * 组件的方法列表

      */

    methods: {

    run1: function () {

    var that = this;

    var timeout = setTimeout(function () {

    if (that.data.marqueeDistance > -that.data.length) {//记住是right从0开始

    that.setData({

    marqueeDistance: that.data.marqueeDistance - that.data.marqueePace,

    });

    // that.data.marqueeDistance == 750 - (that.data.length - that.data.length % that.data.marqueePace)

    if (that.data.marqueeDistance == 750 % that.data.marqueePace + 2 * that.data.marqueePace) {

    setTimeout(function () {

    that.run1();

    }, that.data.marqueeList[that.data.count].showTime * 1000)

    } else {

    that.run1();

    }

    } else {

    //一个回合结束,更新count

    var count = that.data.count;

    if (++count > that.data.marqueeList.length - 1) {

    count = 0

    }

    that.setData({

    count: count

    })

    that.initMarquee()

    }

    }, that.data.interval);

    },

    initMarquee: function () {

    var that = this;

    var marqueeData = that.data.marqueeList[that.data.count]

    that.setData({

    length: marqueeData.content.length * that.data.size,

    marqueeDistance: 750,

    content: marqueeData.content,

    marqueePace: 750 * that.data.interval / 1000 / marqueeData.moveTime

    });

    that.run1();// 水平一行字滚动完了再按照原来的方向滚动

    }


    }

    })



    2017-12-16
    赞同
    回复
  • 赵青山
    赵青山
    2017-12-16

    这个nodeId代码里面没有,应该是引入自定义后发生的问题

    2017-12-16
    赞同
    回复
  • 神棍
    神棍
    2017-12-16

    你要贴代码啊,光贴报错谁知道

    2017-12-16
    赞同
    回复