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

这篇具有很好参考价值的文章主要介绍了微信小程序:父组件调用子组件的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前提条件

本项目拥有至少三个组件,父组件子组件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的唯一标识。文章来源地址https://www.toymoban.com/news/detail-823383.html

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

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

generateImage() {
    // Do Something
},

到了这里,关于微信小程序:父组件调用子组件的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序手机号快速验证组件调用方式

    目录 一、测试环境 二、问题现象 三、总结 手机号验证组件(包括快速验证组件和实时验证组件)调用后无法对事件进行回调这个问题,先说结论,以下是正确的使用方式: 一、测试环境 windows10 微信开发者工具(1.06.2307260win32-x64) 基础库(3.0.1[1028]) iPhone XR(IOS 15.2.1) 微信(

    2024年02月10日
    浏览(45)
  • 微信小程序---微信授权弹窗实现(组件,需要地方直接调用即可)

     在资源处下载后 在调用页面 json: wxml: js: 1、先判断是否已经登录,未登录直接调用show_empower:true即可弹出登录授权框 2、点击授权会请求获取手机号码,通过手机号码请求后台数据,若登录成功后 3、在页面调用return_login(e)方法,判断e携带的值是否请求成功。 4、若成

    2024年02月12日
    浏览(69)
  • 微信小程序接口同步调用方法

    前言: 相信有很多小程序开发者在开发的过程中,接口异步调用导致接口调用的顺序和自己想象的不一样,前面的接口还没有调用完成后面的接口已经完成了,由于小程序默认是异步 同步调用和异步调用: 那么什么时同步什么是异步呢? 同步:同步调用一旦开始,必须要等

    2024年02月10日
    浏览(31)
  • 微信小程序 - 调用后台api接口方法

    2024年01月16日
    浏览(34)
  • 微信小程序 --调用JAVA接口的方法

    在微信小程序中调用后端的Java接口,通常有以下几种方式: 1.HTTP请求:可以使用小程序的网络请求API,如wx.request(),通过发送HTTP请求来调用后端的Java接口。请求可以使用GET、POST等常见的HTTP方法,并通过请求头、请求体传递数据和参数。后端Java应用可以使用框架如Spring B

    2024年02月15日
    浏览(26)
  • uniapp微信小程序调用 getLocation 失败检查方法

    1、检查小程序 平台 request合法域名 加入:https://apis.map.qq.com 2、uniapp manifest.json 源码 必须加入 \\\"permission\\\" : {             \\\"scope.userLocation\\\" : {                 \\\"desc\\\" : \\\"获取当前位置用于排列展示\\\"             }         },         \\\"requiredPrivateInfos\\\" : [ \\\"getLocation\\\" ] 3、调试基

    2024年02月11日
    浏览(48)
  • 微信小程序创建自定义全局函数及其调用方法

    一:创建小程序全局函数 1:在微信开发工具中增加一个JS文档, 放入全局全局函数 代码说明 1:全局函数只能放var定义的变量下,本例的var 变量为myFunction 格式为: var myFunction={ 在这里编写你的全局函数 } 你可以把myFunction理解为一个类,你的全局函数理解放类中的一个方法

    2024年02月09日
    浏览(27)
  • 微信小程序 app.js 简单调用其他页面的方法

    方法1 app.js里面 被调用函数页面 test.js 方法2 app.js文件 otherPage.js文件 方法1如果pageName没有this值将会报错,人话就是被调用的页面需要被打开过执行生命周期函数--监听页面加载; 方法2无视方法1

    2024年02月19日
    浏览(25)
  • 【微信小程序】创建动态组件和引用的方法

    实战内容:创建微信小程序动态组件并在其他页面中引用该组件 欢迎关注收藏订阅专栏!!! 提示:该项目只用于个人实战,不应用于任何商业用途。 创建动态组件 局部引用组件 全局引用组件 我是先选择官方的基础模板进行创建一个 微信小程序 , 在项目创建成功后,在

    2024年02月09日
    浏览(25)
  • 微信小程序使用image组件显示图片的方法

    本文实例讲述了微信小程序使用image组件显示图片的方法。分享给大家供大家参考,具体如下: 1、效果展示 2、关键代码 ① index.wxml 代码如下: image style=\\\"width: 300px; height: 300px; margin:10px;\\\" mode=\\\"scaleToFill\\\" src=\\\"{{imageSrc}}\\\"/image ② index.js Page({ data:{ // text:\\\"这是一个页面\\\" imageSrc:\\\'../..

    2024年02月12日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包