本项目拥有至少三个组件,父组件
、子组件1
、子组件2
,引用关系分别为:
父组件
中 引用 子组件1
父组件
中 引用 子组件2
目标是:在 子组件2
中有一个按钮,点击需要触发 子组件1
中的一个方法。
<!-- 父组件 index.wxml-->
<scroll-view class="whole-page" scroll-y type="list">
<view class="content">
<view class="center">
<use-drawer id="use-drawer" />
</view>
<view class="right">
<post-drawer bind:generate-image="generateImage" />
</view>
</view>
</scroll-view>
其中:
use-drawer
和post-drawer
分别是子组件1 和子组件2<!--components/game-pages/post-drawer/index.wxml-->
<text>components/game-pages/post-drawer/index.wxml</text>
<view>
<view>
<button bindtap="generateImage">生成图片</button>
</view>
</view>
子组件2中,是通过一个按钮来触发事件。
generateImage
方法:generateImage() {
this.triggerEvent('generate-image')
}
<view class="right">
<post-drawer bind:generate-image="generateImage" />
</view>
通过bind:generate-image="generateImage"
,将generate-image
和父组件的generateImage
绑定。
<view class="center">
<use-drawer id="use-drawer" />
</view>
通过id="use-drawer"
,指定为子组件1的唯一标识。
generateImage
方法generateImage() {
const useDrawer = this.selectComponent("#use-drawer")
console.log('child component:', useDrawer.data)
useDrawer.generateImage() // 子组件中的方法
}
generateImage() {
// Do Something
},