小程序云函数调用失败解决方案

小程序云函数调用失败解决方案,第1张

以官方提供的“小程序云开发快速启动模板”为例。

获取openid失败:

进行“点击获取openid”测试失败,出现下图所示的提示,并且控制台会提示以下错误信息:

VM86:1 [云函数] [login] 调用失败 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail cloud function service error code -504002, error message Function not found: [login]at cloud.callFunction api

云端运行环境为 Node.js ,需要先在本地安装 Node.js 和 npm 才能顺利测试。同时还要在云函数目录下安装 wx-server-sdk 依赖:

npm install --save wx-server-sdk

详细内容参见官方文档 https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/

直接忽略即可,并不会影响后续的云函数功能。成功安装依赖后,相应的云函数文件夹将生成一个 package-lock.json 文件。

上边这种写法不生效,在小程序中不支持这种语法。

需要创建一个wxs文件,

在wxml文件中引入该文件,并调用你想要用到的函数

有时我们展示了一个列表, 并想提供查看某项列表的详细内容, 我们会在列表项的末端加一个查看按钮, 这时我们如何在按按钮的时候得知这是那一项呢? 这时就需要带参数信号, 信号是可以带参数的, 参数会在信号发送时携带, 并传递给接收此信号的槽

from PyQt4 import QtGui, QtCore

class MyButton(QtGui.QPushButton):

myclicked = QtCore.pyqtSignal(int)

def __init__(self, _id, *args, **kwargs):

QtGui.QPushButton.__init__(self, *args, **kwargs)

self._id = _id

self.connect(self, QtCore.SIGNAL("clicked()"), self.emitMyclicked)

def emitMyclicked(self):

self.myclicked.emit(self._id)

app = QtGui.QApplication([])

w = QtGui.QWidget()

w.resize(100, 100)

def showMsg(_id):

QtGui.QMessageBox.information(w, u"信息", u"查看 %d" % _id)

btn = MyButton(1, u"查看1", w)

w.connect(btn, QtCore.SIGNAL("myclicked(int)"), showMsg)

btn2 = MyButton(2, u"查看2", w)

btn2.move(0, 30)

w.connect(btn2, QtCore.SIGNAL("myclicked(int)"), showMsg)

w.show()

app.exec_()

上面例子可以看出, QObject.emit 发送带参数的信号时要携带参数. 当然上面例子也可以用下面方式来写

from PyQt4 import QtGui, QtCore

class MyButton(QtGui.QPushButton):

def __init__(self, _id, *args, **kwargs):

self._id = _id

QtGui.QPushButton.__init__(self, *args, **kwargs)

self.connect(self, QtCore.SIGNAL("clicked()"), self.emitClicked)

def emitClicked(self):

self.emit(QtCore.SIGNAL("myclicked(int)"), self._id)

app = QtGui.QApplication([])

w = QtGui.QWidget()

w.resize(100, 100)

def showMsg(_id):

QtGui.QMessageBox.information(w, u"信息", u"查看 %d" % _id)

btn = MyButton(1, u"查看1", w)

w.connect(btn, QtCore.SIGNAL("myclicked(int)"), showMsg)

btn2 = MyButton(2, u"查看2", w)

btn2.move(0, 30)

w.connect(btn2, QtCore.SIGNAL("myclicked(int)"), showMsg)

w.show()

app.exec_()


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/7694342.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-08
下一篇2023-04-08

发表评论

登录后才能评论

评论列表(0条)

    保存