共计 1304 个字符,预计需要花费 4 分钟才能阅读完成。
1、wepy 中不能使用原生的 input 组件
当开发中需要使用 radio 或者 checkbox 时,通常设置 input 的 type 类型为 radio 或者 checkbox,但是经过编译后统统会变成 text 类型,wepy 不支持这种用法。我们可以直接使用小程序自带的 checkbox 组件来代替。
2、wepy2.x 中拦截器使用方式与 wepy1.x 不同,本人使用 fly.js 代替
wepy1.x 拦截器用法:
import wepy from 'wepy';
export default class extends wepy.app {constructor () {// this is not allowed before super()
super();
// 拦截 request 请求
this.intercept('request', {
// 发出请求时的回调函数
config (p) {
// 对所有 request 请求中的 OBJECT 参数对象统一附加时间戳属性
p.timestamp = +new Date();
console.log('config request:', p);
// 必须返回 OBJECT 参数对象,否则无法发送请求到服务端
return p;
},
// 请求成功后的回调函数
success (p) {
// 可以在这里对收到的响应数据对象进行加工处理
console.log('request success:', p);
// 必须返回响应数据对象,否则后续无法对响应数据进行处理
return p;
},
// 请求失败后的回调函数
fail (p) {console.log('request fail:', p);
// 必须返回响应数据对象,否则后续无法对响应数据进行处理
return p;
},
// 请求完成时的回调函数 (请求成功或失败都会被执行)
complete (p) {console.log('request complete:', p);
}
});
}
}
本人寻思良久,没有发现 wepy2.x 使用拦截器的案例,所以“曲线救国”使用 fly.js 来代替。
// 添加请求拦截器
fly.interceptors.request.use((request)=>{
// 给所有请求添加自定义 header
request.headers["X-Tag"]="flyio";
// 打印出请求体
console.log(request.body)
// 终止请求
//var err=new Error("xxx")
//err.request=request
//return Promise.reject(new Error(""))
// 可以显式返回 request, 也可以不返回,没有返回值时拦截器中默认返回 request
return request;
})
// 添加响应拦截器,响应拦截器会在 then/catch 处理之前执行
fly.interceptors.response.use((response) => {
// 只将请求结果的 data 字段返回
return response.data
},
(err) => {
// 发生网络错误后会走到这里
//return Promise.resolve("ssss")
}
)
详情参考:https://github.com/wendux/fly#
正文完