微信小程序(量寻)
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>
其中,idx
、pickers
分别定义在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(){} //成功后的回调;
fail:function(){} //失败后的回调;
complete:function(){} //结束后的回调(成功,失败都会执行)
})
//传递的参数在接收页面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
})
}
}
}
}