云开发 如何实现/完善 一个用户信息注册填写的page?
发布于 4 年前 作者 tjin 1485 次浏览 来自 官方Issues

这是本人已写的部分

逻辑是点开page时 on lunch将数据导进

点击修改page按钮时 则执行了更新和导进两步

出但是现了一个问题 就是真机测试时 本人测试没有问题 但其他用户点开此页面时会出现bug 如下:页面点开的瞬间正常 但之后变成只剩下一个button

目前猜测应该时执行导进时数据库中没有主键为其他用户的openid所导致
那么该如何修改呢
修改逻辑?或是自动创建其他用户数据?
该如何进行修改呢?
感谢指导 给每位回答的师傅点赞
如有没表达清楚的地方请见谅
也可提供真机测试二维码

js 数据库 wxml部分code 目前效果如下如下

<view class='container'>
  <view wx:for='{{datalist}}'>
  <view class='group_header'>基本信息</view>
  <view class='gruop_body'>
    <view class='group_body_'>
      <view class='group_body_item'>姓名</view>
      <input class='group_body_input'  placeholder='{{item.name}}' bindinput='addName'></input>
    </view>
    <view class='group_body_'>      
      <view class='group_body_item'>性别</view>
      <input class='group_body_input'  placeholder='{{item.sex}}' bindinput='addSex'></input>
    </view>
    <view class='group_body_'>      
      <view class='group_body_item'>班级</view>
      <input class='group_body_input'  placeholder='{{item.banji}}' bindinput='addBanji'></input>
    </view>
    <view class='group_body_'>     
      <view class='group_body_item'>学号</view>
      <input class='group_body_input'  placeholder='{{item.index}}' bindinput='addIndex'></input>
      </view>
    <view class='group_body_'>
      <view class='group_body_item'>联系方式</view>
      <input class='group_body_input'  placeholder='{{item.phone}}' bindinput='addPhone'></input>
    </view>
  </view>
  <view class='apply_title'>
    <view class='group_header'>个性签名</view>
    <textarea maxlength='50' placeholder='{{item.text}}' bindinput='addText'></textarea>
  </view>
  </view>
</view>

<view class='submit'>
    <button class="btn-block btn-orange" bindtap="upData">修改</button>
  </view>

/usereditor/usereditor.js

const DB = wx.cloud.database().collection('user')
var app=getApp()
let name=''
let sex=''
let banji=''
let index=''
let phone=''
let text=''
Page({

  /**
   * 页面的初始数据
   */
//未填写信息时的默认placeholder
  data: {
    datalist:[{
      name:'请输入姓名',
      sex:'请输入性别',
      banji:'请输入班级',
      index:'请输入学号',
      phone:'请输入联系方式',
      text:'发表你今天的心情吧!'
    }]

  },
  //input事件获取
  addName(event) {
    name = event.detail.value
  },
  addSex(event) {
    sex = event.detail.value
  },
  addBanji(event) {
    banji = event.detail.value
  },
  addIndex(event) {
    index = event.detail.value
  },
  addPhone(event) {
    phone = event.detail.value
  },
  addText(event) {
    text = event.detail.value
  },
  //获取服务端数据
  getData() {
    let that = this//
    DB.where({
      _openid: app.globalData.openid //openid
    })
      .get({
        success(res) {
          console.log('请求成功 ', res)
          that.setData({//
            datalist: res.data
          })
        },

        fail(res) {
          console.log('请求成功 ', res)
        }

      })
  },
  //修改用户数据
  upData(){
    DB.where({
      _openid: app.globalData.openid
    })
    .update({
      data: {
        name: name,
        sex: sex,
        banji: banji,
        index: index,
        phone: phone,
        text: text
        }
      
    })
    .then(res =>{
      console.log('更新成功',res) 
      this.getData();
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getData()
  },

 
})
1 回复

修改数据库权限试试?

回到顶部