VenusYan 2023-04-04 16:44 采纳率: 100%
浏览 58
已结题

微信小程序云开发报错:ReferenceError: phone is not defined

微信小程序云开发报错:ReferenceError: phone is not defined
此页面 功能实现目标为点击按钮后通过getPhoneNumber获取用户手机号,并查找是否已存在于数据库中,若存在则存储信息并跳转至另一页面,现在在数据库查找这一步卡住了,求帮助。

img

pages\index\index.js 代码


Page({
  data: {
    logintext: '登陆',
    userInfo: {},
    phone: {},
    ......
  },
.......
getPhoneNumber(e) {
    var that = this;
    wx.showLoading({
      title: '加载中,请稍后...',
    }),wx.login({
      success(res){
        wx.cloud.callFunction({
          name: 'get-phone-number',
          data: {
            cloudID: e.detail.cloudID
          }
        }).then(res => {
          this.setData({phone:res.result.list[0].data.phoneNumber})   
       })
      },
    })
    db.collection("userlist").doc(phone).get.then(res=>{
      console.log(res) 
    })
  }

img

// 云函数入口文件
const cloud = require('wx-server-sdk')
//const requestpromise = require('request-promise');
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})
// 云函数入口函数
exports.main = async (event, context) => {
  console.log("上传的cloudID", event.cloudID)
  return await cloud.getOpenData({
    list: [event.cloudID]
  })
}

  • 写回答

4条回答 默认 最新

  • CSDN专家-showbo 2023-04-04 17:19
    关注

    根据用户手机号查询的代码有问题,改成下面这样,错误看注释

    
            getPhoneNumber(e) {
                var that = this;
                wx.showLoading({
                    title: '加载中,请稍后...',
                }),
                    wx.login({
                        success(res) {
                            wx.cloud.callFunction({
                                name: 'get-phone-number',
                                data: {
                                    cloudID: e.detail.cloudID
                                }
                            }).then(res => {
                                this.setData({ phone: res.result.list[0].data.phoneNumber })
                                //放回调里面执行查询
                                var phone = res.result.list[0].data.phoneNumber;//////定义变量并且赋值
    
                                db.collection("userlist").doc(phone).get.then(res => {
                                    console.log(res)
                                })
    
    
                            })
                        },
                    })
                //这里的phone变量没定义,而且wx.login异步的,就算定义了phone也得不到值,要放到then回调里面执行下面的代码或者改成async+await模式
                /*
                db.collection("userlist").doc(phone).get.then(res => {
                    console.log(res)
                })*/
            }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月13日
  • 已采纳回答 4月5日
  • 创建了问题 4月4日

悬赏问题

  • ¥15 请问如何查看手机root记录?
  • ¥15 学校优化算法sbo和蚁群算法怎么结合
  • ¥21 matlab怎么求时域信号的二阶导数
  • ¥15 判断两个表是否完全相同
  • ¥15 java map类型数据格式,如何快速通过前缀匹配元素
  • ¥15 stc12c5a60s2、QMC5883L、LCD1602组合测量磁场所需程序
  • ¥20 Win11测试yolov4,“找不到nvcuda.dll”怎么办?
  • ¥15 simulink绘制bode图
  • ¥15 php_network_getaddresses: getaddrinfo failed: Name or service not known
  • ¥15 用msg发消息出现的问题