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

微信小程序云开发报错: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 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码