小程序
小游戏
企业微信
微信支付
扫描小程序码分享
论坛里的大神,您们好 ^ _ ^
1、业务是:该组件在出现的时候时候有一个默认选中的效果。
2、默认选中的效果已经ok,默认选中之后我需要触发一个事件来告诉组件外部的 页面逻辑,表示已经选中,可以继续下面的操作了。
3、问题就出现在这里:自定义事件没有被触发。用户在选择其他的信息时候,如果选择完成,自定义事件是触发的。但是就默认选中的情况下没有被触发。已经进入 if 体。只有自定义事件没有被触发
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
把let换成var, let在部分机型中会不好用,这个上线之后会有问题,而且不报错,所以不要用let
var that =this; 要在let arr = [];后面定义var that =this;触发不了的原因是因为this作用域错了,that.triggerEvent('select', skusObj
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
您好,这个我用了另一种解决方式, 开一个延迟器就可以触发自定义事件了:
但是我不清楚为什么加一个 延迟器就可以触发,不加延迟器就触发不了。您可以解答一下吗?
不要用setTimeout网速慢加载慢的时候会有问题的,我已近告诉你怎么改了,照着改就行了,不该上线之后再翻我的回答吧
但是您说的this指向问题,还请您看下es6 语法。
我的理解应该是小程序的ui 层 与 逻辑 层 的异步 而导致 bug。这里的setTimeout 并不牵扯任何 HTTP 请求相关的逻辑。我是数据请求成功之后才将数据传递给组件的。通过组件的 properties 属性 下的 observer 方法监听 组件的数据传递。只有当组件拿到真正 的 数据 才会执行 默认选中的逻辑
这是组件的接口部分代码:
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
把let换成var, let在部分机型中会不好用,这个上线之后会有问题,而且不报错,所以不要用let
var that =this; 要在let arr = [];后面定义var that =this;触发不了的原因是因为this作用域错了,that.triggerEvent('select', skusObj
您好,这个我用了另一种解决方式, 开一个延迟器就可以触发自定义事件了:
但是我不清楚为什么加一个 延迟器就可以触发,不加延迟器就触发不了。您可以解答一下吗?
不要用setTimeout网速慢加载慢的时候会有问题的,我已近告诉你怎么改了,照着改就行了,不该上线之后再翻我的回答吧
但是您说的this指向问题,还请您看下es6 语法。
我的理解应该是小程序的ui 层 与 逻辑 层 的异步 而导致 bug。这里的setTimeout 并不牵扯任何 HTTP 请求相关的逻辑。我是数据请求成功之后才将数据传递给组件的。通过组件的 properties 属性 下的 observer 方法监听 组件的数据传递。只有当组件拿到真正 的 数据 才会执行 默认选中的逻辑
这是组件的接口部分代码: