app.wpy 是入口文件,很多东西例如 globalData intercept onLaunch 都需要在这里配置。
其中 config 属性对应原生的 app.json 文件,build 编译时会根据 config 属性自动生成 app.json 文件,如果需要修改 config 中的内容,请使用微信提供的相关 API。
在 app.wpy 中,在 constructor 里的 intercept 里的 config 里,通过 url 是否开头含有 http:// 或 https:// 判断是否需要对通过 wepy.request 的请求添加 apiDomain ,起到类似 axios baseURL 的作用
if (!(/^https?:\/\//.test(p.url))) {
p.url = env.apiDomain + p.url;
}
当调用 requestPayment
时,在 callback (无论是 success
、 fail
、还是 complete
)里使用 reLaunch
?报错 fail can not invoke reLaunch in background
。 2018-07-17
是的。这是微信的 bug 。想别的办法吧,例如使用 switchTab
或 redirectTo
。
在 app.wpy 的 config 里配 pages 时,二级目录需要排在一级目录的后面。 2018-07-17
/* 这样就会报错 */
...
"pages/menu/cart/index",
"pages/menu/index",
...
/* 这样就没问题 */
...
"pages/menu/index",
"pages/menu/cart/index",
...
// 每次添加新页面后,需要重新 `npm run dev` 一次,否则可能报错
当使用“远程调试”提示编译异常时,试试 rm -r dist/
和 rm .wepycache
(即删除 dist 文件夹)
在调用 requestPayment
的上一行里调用 removeTabBarBadge
会失效。更新:我把 removeTabBarBadge 放入 requestPayment 的 callback 里,在“远程调试”和“开发者工具”里都成功了,但是在体验版和“预览”里都失败。。。我不想再写这些坑了。。。我¥%@¥#@#¥%#!%&……#¥#@¥ 2018-07-28 卒
在 iOS 里, align-self: stretch;
会失效。 2018-07-28
在 iOS 里,transform: perspective(99999px) translateZ(1px);
会穿透 z-index
比它高的 view
。 2018-07-28
我打算试试用这个代替 z-index
来着。。。
当需要阻止点击冒泡时,可以使用 @tap.stop
。当需要阻止滑动冒泡时,可以使用 @touchmove.stop
...
<view @tap.stop="stopBubble">
...
</view>
...
...
<view @touchmove.stop="stopBubble">
...
</view>
...
stopBubble() {
return
}
当出现 textarea
input
等层级过高现象时
可以使用 cover-view
(慎用)。cover-view
对 flex 布局不友好。
若 textarea
穿透弹窗遮罩(又叫蒙版又叫 mask ),可在弹窗出现时隐藏 textarea
,并用另一个 view
用来占位。
清空 input
可以用 wx:if
切成 false
再切成 true
。。。
使用 font face 从链接载入的字体,可能在第一次打开项目时载入失败。刷新一下就好了。
使用本地图片时,图片名称不能是中文。
onLaunch 里放 debugger
可能一下子报四十多个错。。。
预览生成的二维码时可能出现缓存现象导致预览到的二维码和放在那儿的二维码不是同一个。
为了防止 button 出现默认样式,通常这样写
<button
id="machine"
form-type="submit"
>
</button>
<label for="machine">
<view class="option">
<view class="icon">
<image src="nier_automata.png" />
</view>
<view class="text">
好耶
</view>
</view>
</label>
/* 需要用到 button 时使用,清除自带样式 */
button,
.button-hover {
all: unset !important;
}
button::before,
button::after {
content: none;
}