找个四个小时才找到,想想还是说一下吧。
<view wx:for="{{ newInputs }}" wx:key='index'>
<input-lock options='{{ options }}' bindhaha='test'></input-lock>
</view>
在wx:for 中循环生成自定义组件导致自定义组件无法通过 this.triggerEvent 触发事件。
当用字面量声明数组的方式使用 wx:for 又神奇的可以触发事件了。
<block wx:for='{{ [1, 2] }}' wx:key='index'>
<template is='lock' data='{{ options: inputs[0] }}'></template>
</block>
接下来就是想一下怎么用字面量声明数组的方式来实现业务,
要不然就学以前的 taro 用template 来组件化,真让人抓狂。
taro大法好
补充:
<block wx:for='{{ [1, 1] }}' wx:key='index'>
<block wx:if="{{ index < inputs.length }}">
<template is="{{ 'lock' }}" data='{{ options: inputs[0] }}'></template>
</block>
</block>
尝试使用 字面量数组 和 wx:if 搭配依然无法触发事件。
尝试绑定 tap 事件,通过点击触发事件。成功触发事件。
因上,得出最终解,使用 setTimeout 使代码的执行变为异步的,成功触发事件。
setTimeout(() => {
this.triggerEvent('haha')
}, 10);
https://developers.weixin.qq.com/s/NHa961mn7d5B
至此,setTimeout 已经救了我三次了。
音频组件,input 组件,此次。