微信小程序引用自定义函数的几种方法

微信小程序有时需要函数里面调用函数,然而,使用不当经常报错误

thirdScriptError
Cannot read property ‘testaaa’ of undefined;at api request success callback function
TypeError: Cannot read property ‘testaaa’ of undefined

总结了一下,列出几种调用函数的方法:

  1. 引用同一js文件中的方法函数

testaaa: function (info) {
    console.log(info);
},

/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
    wx.request({
        url: 'http://127.0.0.1:5000/',
        data: '',
        header: {},
        method: 'GET',
        dataType: 'json',
        responseType: 'text',
        success: this.testaaa("fdgdfg"),
        fail: function(res) {},
        complete: function(res) {},
    })
},
  1. 函数里面调用函数

testaaa: function (info) {
    console.log(info);
},

/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
    var that = this;
    wx.request({
        url: 'http://127.0.0.1:5000/',
        data: '',
        header: {},
        method: 'GET',
        dataType: 'json',
        responseType: 'text',
        success: function (res) { that.testaaa("fdgdfg")},
        fail: function(res) {},
        complete: function(res) {},
    })
},

  1. 调用不同文件的函数

在自定义的文件中定义方法,然后在需要使用的文件中调用。
如在index.js文件中定义,然后在xxx.js中使用。
那么index.js中定义的方法,需要通过module.exports={xxxMethord: xxxMethord}公开暴露出来
否则被调用时识别不出来会出现;同时,在xxx.js文件中使用时,需要通过require(“路径/util.js”)导入util.js文件,再进行调用。

index.js中定义 (不是写在Page({})里)


module.exports = {
    openfile: openfile
}

function openfile(info) {
    console.log("打开文件");
}

xxx.js 中引用:


Page({

    testaaa: function (info) {
        var index = require('../index/index.js')
        index.openfile()
    },
    
})
  1. 调用App.js的函数

在app.js文件里定义一个函数,然后在被使用的文件中调用,如下代码示例:

app.js:

App({
    Gettime: function(info) {
        console.log("我是一个在App里定义的函数");
    },
})

xxx.js中引用:


const app = getApp()
Page({

    testaaa: function () {
        app.Gettime();
    }

})

  • 12
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
微信小程序中的自定义事件是开发者自己定义的事件,可以在组件中触发和处理。在小程序中,有几种方式可以实现自定义事件。 一种方式是通过在组件的methods中声明一个与bind:{eventName}属性中指定的方法同名的方法,作为自定义事件的处理函数。例如,可以定义一个名为onMyEvent的方法来处理自定义事件。在该方法中,可以通过event.detail来获取传递给自定义事件的数据。例如,可以使用console.log(event.detail.myData)来输出传递的数据。\[3\] 另一种方式是使用PubSub库来实现自定义事件。在组件中,可以使用PubSub.subscribe方法来订阅自定义事件,并提供一个回调函数来处理事件。在另一个组件中,可以使用PubSub.publish方法来触发自定义事件,并提供相应的数据。通过这种方式,不同组件之间可以进行事件的订阅和发布,实现组件之间的通信。\[2\] 总结起来,微信小程序中的自定义事件可以通过声明同名方法或使用PubSub库来实现。通过这些方式,开发者可以自由定义和处理自己的事件,实现组件之间的通信和交互。 #### 引用[.reference_title] - *1* *3* [小程序数据传递和自定义事件](https://blog.csdn.net/qq_34185872/article/details/131269653)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [微信小程序——定义事件相关](https://blog.csdn.net/weixin_45890771/article/details/122651858)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值