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

微信小程序云开发报错: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日

悬赏问题

  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析
  • ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败
  • ¥15 用Ros中的Topic通讯方式控制小乌龟的速度,走矩形;编写订阅器代码
  • ¥15 LLM accuracy检测
  • ¥15 pycharm添加远程解释器报错
  • ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口
  • ¥15 如何能达到用ping0.cc检测成这样?如图
  • ¥15 关于#DMA固件#的问题,请各位专家解答!