微信小程序:父组件调用子组件的方法

前提条件

本项目拥有至少三个组件,父组件子组件1子组件2,引用关系分别为:

  • 父组件中 引用 子组件1
  • 父组件中 引用 子组件2

目标是:在 子组件2 中有一个按钮,点击需要触发 子组件1 中的一个方法。

调用步骤

第一步:父组件中引用子组件

  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-drawerpost-drawer分别是子组件1 和子组件2

第二步:子组件中编写事件触发机制

  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中,是通过一个按钮来触发事件。

  1. 编写generateImage方法:
generateImage() {
   
    this.triggerEvent('generate-image')
}

第三步:父组件中绑定该方法

  1. 通过一个方法,和子组件2绑定
<view class="right">
    <post-drawer bind:generate-image="generateImage" />
</view>

通过bind:generate-image="generateImage",将generate-image和父组件的generateImage绑定。

  1. 给父组件1指定唯一标识
<view class="center">
    <use-drawer id="use-drawer" />
</view>

通过id="use-drawer",指定为子组件1的唯一标识。

  1. 定义generateImage方法
generateImage() {
   
    const useDrawer = this.selectComponent("#use-drawer")
    console.log('child component:', useDrawer.data)
    useDrawer.generateImage() // 子组件中的方法
}

第四步:最后,在子组件1中定义方法即可

generateImage() {
   
    // Do Something
},

相关推荐

  1. 程序组件调用组件方法

    2023-12-22 11:44:04       69 阅读
  2. 程序组件调用组件方法

    2023-12-22 11:44:04       49 阅读
  3. 组件调用组件方法

    2023-12-22 11:44:04       62 阅读
  4. flutter 组件调用组件方法

    2023-12-22 11:44:04       40 阅读
  5. vue组件调用组件方法

    2023-12-22 11:44:04       52 阅读
  6. Vue.js 中组件调用组件方法

    2023-12-22 11:44:04       50 阅读
  7. react组件调用组件方法

    2023-12-22 11:44:04       40 阅读
  8. 组件调用组件方法组合式 API版)

    2023-12-22 11:44:04       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-22 11:44:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-22 11:44:04       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-22 11:44:04       87 阅读
  4. Python语言-面向对象

    2023-12-22 11:44:04       96 阅读

热门阅读

  1. springcloud gateway routes 路由规则

    2023-12-22 11:44:04       59 阅读
  2. .sync修饰符

    2023-12-22 11:44:04       53 阅读
  3. 决策树和随机森林算法 简介

    2023-12-22 11:44:04       57 阅读
  4. react:useContent

    2023-12-22 11:44:04       58 阅读
  5. 软件设计模式:单例模式

    2023-12-22 11:44:04       54 阅读
  6. 【leetcode刷题之算法】

    2023-12-22 11:44:04       74 阅读
  7. ffprobe工具

    2023-12-22 11:44:04       70 阅读
  8. Milvus实战:构建Q&A系统及推荐系统

    2023-12-22 11:44:04       72 阅读
  9. ros2/ros1中的cmakelists.txt文件解释

    2023-12-22 11:44:04       54 阅读