在 Taro 中,父组件要往子组件传递函数,属性名必须以 on
开头
// 调用 Custom 组件,传入 handleEvent 函数,属性名为 onTrigger
class Parent extends Component {
handleEvent () {
}
render () {
return (
<Custom onTrigger={this.handleEvent}></Custom>
)
}
}
这是因为,微信小程序端组件化是不能直接传递函数类型给子组件的,在 Taro 中是借助组件的事件机制来实现这一特性,而小程序中传入事件的时候属性名写法为 bindmyevent
或者 bind:myevent
<!-- 当自定义组件触发 myevent 事件时,调用 onMyEvent 方法 -->
<component-tag-name bindmyevent="onMyEvent" />
<!-- 或者可以写成 -->
<component-tag-name bind:myevent="onMyEvent" />
所以 Taro 中约定组件传递函数属性名以 on
开头,同时这也和内置组件的事件绑定写法保持一致了。