微信小程序(量寻)

Posted by CodingWithAlice on August 31, 2019

微信小程序(量寻)

1.切换

 <view class="findlost_wrap">
    <navigator class="findlost" target="" url="" hover-class="navigator-hover" open-type="navigate">
      <view class="find " data-tabId="0" bindtap="selectTab" >失物招领</view>
      <view class="lost " data-tabId="1" bindtap="selectTab" >寻物启事</view>
    </navigator>
  </view>
// 切换失物招领/寻物启事
  selectTab(e){
    console.log(e);
  },

3.picker使用无效问题解决

		<picker value="" range="" bindchange="PickerChange">
            <view>
                
            </view>
        </picker>

其中,idxpickers分别定义在data中

    pickers: ['钥匙', '饭卡', '手机', '钱包', ''],
    editCate: '',
    idx: 0,

选择变化的时候出发的方法定义如下

	/* 这里一定要写idx的值的设置,否则就会出现选上了,但是不能显示选上的值 */
PickerChange(e) {
    this.editCate = e.detail.value;
    this.setData({
      idx: e.detail.value
    })
  	},

4.wx.navigateTo跳转不了

错误排查:

1.app.json文件中注册检查

2.跳转的url地址和目录层级 3.跳转到的页面是非tabBar的页面吗?如果是tabBar页面,那么wx.navigateTo/wx.redirectTo只能用在非tabBar页面的跳转,要跳转到tabBar页面,需要使用wx.switchTab

实现的代码:

// 点击发布后跳转回首页
  goToIndex() {
    wx.switchTab({
      url: '../index/index'
    })
  },
//设置了延迟
goToIndex() {
    setTimeout(function () {
      wx.switchTab({
        url: '../index/index',
      })
    }, 800)
  },

5.跳转页面的四个方法

1.wx.navigateTo({}) ,保留当前页面,跳转到应用内的某个页面,使用 wx.navigateBack 可以返回;

	wx.navigateTo({
    	//跳转页面的路径,可带参数 ?隔开,不同参数用 & 分隔;相对路径,不需要.wxml后缀
		url:'../test/test?id=1&page=4',  
      	success:function(){}        //成功后的回调;
      	failfunction(){}          //失败后的回调;
     	completefunction(){}      //结束后的回调(成功,失败都会执行)
  	})
  	//传递的参数在接收页面onLoad()函数中得到值:option.id就可以得到了
  	onLoad: function (option) {
    	 console.log(option)//可以打印一下option看查看参数
     		this.setData({
         	id:option.id,
     		});

2.wx.redirectTo() , 关闭当前页面,跳转到tabBar的某个页面,

3.使用组件 ` ` **示例:** ` 点击跳转 `

4.wx.switchTab ,跳转到tabBar的某个页面

6.调用微信自带接口进行登录

登录逻辑如下

在写代码的时候,还要考虑到本地缓存,以及token过期的问题,其中登录逻辑如上图

7.清空input表单数据

实现思路: 给每一个input绑定相同的value对象,提交成功后把这个对象赋值为空.

    <form bindsubmit='formSubmit' bindreset="formReset">
        <!-- 地点 -->
        <view class="cu-form-group edit_posi" type="edit_posi">
            <view class="title">地点</view>
            <input value=''  placeholder="请输入地点描述"></input>
        </view>
        <!-- 详情描述 -->
        <view class="edit_desc" type="edit_desc">
            <textarea value=''  placeholder="请输入物品描述..."></textarea>
        </view>

        <!-- 联系方式 -->
        <view class="edit_contact cu-form-group" type="edit_contact">
            <view class="title">联系方式</view>
            <input value=''  placeholder="请填写联系方式"></input>
        </view>
    </form>
// 点击发布按钮
  goToIndex() {
    var that = this;
	// 将数据传递给后端
    wx.request({
      method: "POST",
      url: 'http://192.168.0.3/item/addOne',
      data: {
        description: this.editDesc,
        positionDesc: this.editPosition,
        contact: this.editContactNum,
      },
      header: {
        'content-type': 'application/json', // 默认值
        "token": wx.getStorageSync('token').token
      },
      success(res) {
        // 发布成功
        if (res.data.code === 0) {
          // 清除表格中数据
          that.setData({
            form_info:'',
            duration: 2000
          })
        }
      }
    }
               }