自己犯過的一些錯誤,和遇到的坑記錄下面來,再找找其他人的坑。。。。其實很多都是小細節(jié),再看看文檔,發(fā)現(xiàn)有些東西文檔上都有的。。。但是文檔不能操之過急。。??偛荒鼙诚聛?。。。目前還不完整,正不斷補充中,有需要的道友請收藏關(guān)注!
- 最坑,文件修改之后要command+s 保存后才能看到效果。。。。并且如果兩個文件都改了的話兩個地方都記得要保存,不然還是沒效果的。我給button綁定動態(tài)標題的,數(shù)據(jù)的保存了,但是wxml 忘了保存,死活不出來,。。。
- navigateTo代表跳轉(zhuǎn)到logs頁面后,index頁面并不銷毀,在logs頁面下面,通過logs頁面左上角的返回按鈕可以返回到index頁面,而如果是wx.redirectTo,則index頁面銷毀,無法從logs頁面返回到index頁面。
- 頁面跳轉(zhuǎn)時候跳參數(shù)
wx.navigateTo({
url: "../logs/logs?id=1&title=標題abc"
})
即:從index頁面跳轉(zhuǎn)到logs頁面過程中,傳遞兩個參數(shù):id=1和title=標題abc
ps:頁面跳轉(zhuǎn)也可以在.wxml中配置,如圖5中所示代碼,文章1對應(yīng)的text組件可以通過如下代碼配置跳轉(zhuǎn): <navigator url="../logs/logs?id=100&title=標題" >
- wx.request發(fā)起的是 HTTPS 請求。
一個微信小程序,同時只能有5個網(wǎng)絡(luò)請求連接。(同時只能有五層頁面),多了就是大程序了。。。 - 微信小程序沒有提供系統(tǒng)級別的緩存清理機制,wx.clearStorge只是清理小程序這部分緩存。。。如果低端機上兼容想加上清理緩存,可以自己加上一個按鈕清除緩存,然后調(diào)用 wx.clearStorge方法就行啦!
- 類似iOS頁面?zhèn)髦的欠N 逆?zhèn)?。在iOS上有block 代理等方法,小程序沒有啊,小程序上順傳用navigateTo()中url攜帶參數(shù)的方式,但是逆?zhèn)魇遣恍械?,找到大神的兩個方法
方法1:使用全局數(shù)據(jù)存儲
將要傳遞的數(shù)據(jù),存儲在App對象上(比如globalData屬性)。
將要傳遞的數(shù)據(jù),存儲在小程序的本地數(shù)據(jù)緩存(Storage)中。
例如,我們在將要退出頁面B的時候,作如下調(diào)用:
//=== 1. 存儲到app對象上的方式 ========
var app = getApp()app.globalData.mydata = {a:1, b:2};
//存儲數(shù)據(jù)到app對象上wx.navigateBack();
//返回上一個頁面
//=== 2.存儲到數(shù)據(jù)緩存的方式 =========
wx.setStorage({
key: "mydata",
data: {
a:1,
b:2
},
success: function () {
wx.navigateBack();
//返回上一個頁面
}})
這樣一來,當返回到上一個頁面的時候,可以通過讀取這些全局存儲區(qū)域,來獲取到我們需要的數(shù)據(jù)。
不過,這種方式也是有很明顯的缺點的。由于是全局數(shù)據(jù)存儲,所以當你存入了那些數(shù)據(jù)后,必須謹慎的去管理這些全局數(shù)據(jù)(何時被銷毀),否則一不小心,就會產(chǎn)生副作用。
方法2:從頁面路由棧中直接獲取和操作目標Page對象
這種方式,是通過調(diào)用小程序的API: getCurrentPages(),來獲取當前頁面路由棧的信息,這個路由棧中按照頁面的路由順序存放著相應(yīng)的Page對象,我們可以很容易的獲取到上一級頁面的完整Page對象,從而使直接調(diào)用Page對象的屬性和方法成為可能。
如下所示:
var pages = getCurrentPages();var currPage = pages[pages.length - 1]; //當前頁面var prevPage = pages[pages.length - 2]; //上一個頁面//直接調(diào)用上一個頁面的setData()方法,把數(shù)據(jù)存到上一個頁面中去prevPage.setData({ mydata: {a:1, b:2}})
比起全局數(shù)據(jù)存儲的方式,這種方式在邏輯上要清晰得多,也不存在對數(shù)據(jù)的銷毀有額外的管理工作。
- 更新完開發(fā)者工具,鏈接不上的問題。
菜單欄-動作-設(shè)置-選擇第一項,不設(shè)置代理-保存!
代理設(shè)置應(yīng)該是一個隱藏比較深的坑,但是很多人被坑過,假如你的機器設(shè)置了代理,開發(fā)者工具可能會也跟著默認帶來代理,然后會接踵而來很多登陸,空白等問題;
暫時就這幾個 以后更新
01.12更新:
- 關(guān)鍵字要放在{{ }}內(nèi),在布爾類型的時候,
true:boolean 類型的 true,代表真值。
false: boolean 類型的 false,代表假值。
<checkbox checked="{{false}}"> </checkbox>
注意:不要直接寫 checked="false",其計算結(jié)果是一個字符串,轉(zhuǎn)成 boolean 類型后永遠代表真值。。。 - 小程序的request 僅支持 HTTPS的,但是http這個暫時還沒有普及多少(話說拼死搞好了iOS的,結(jié)果給個延期。。。),所以本地的開發(fā)環(huán)境測試的時候,還是需要用到http的,支持http需要 左側(cè)-項目-開發(fā)環(huán)境不校驗請求域名與TLS, 這樣就可以了。。。

相信不少道友都在看極客學院的視頻,那個視頻出的比較早,包括IDE跟新版的都不太一樣,這個需要注意下,已經(jīng)踩了一次坑了,發(fā)現(xiàn)不一樣的看下最新文檔上的。。。
如果突然發(fā)現(xiàn)開發(fā)工具上打不進去字了,中英文都不行,不要著急,重啟一下吧,可能是由于不穩(wěn)定造成的,(Mac常見)
-
使用模板的時候報了這個錯誤:
模板
那是因為在include導(dǎo)入引用模板的時候忘了寫后面的反斜杠。。。加上就好。。。犯了兩次了
<include src="../templates/header" />
-
同樣的在使用模板時候出來的錯誤。就是在導(dǎo)入模板的時候兩種方式,官方文檔上有介紹include 和import的區(qū)別。
在使用import的時候要注意寫清楚使用的是哪個模板, 用is 屬性。。
import 有作用域的概念,即只會 import 目標文件中定義的 template,而不會 import 目標文件 import 的 template。
如:C import B,B import A,在C中可以使用B定義的template,在B中可以使用A定義的template,但是C不能使用A定義的template.include可以將目標文件除了<template/>的整個代碼引入,相當于是拷貝到include位置。
-
是不覺得官方的開發(fā)工具自定義程度比較低(Mac版,windows的沒看),比如說換個主題啊什么的,想要個黑色的找不到在哪,。。。其實是有的。。無意間發(fā)現(xiàn)的。在調(diào)試-右上角有個省略圖標那個地方-點一下-有setting。。就是這里了
這里就是設(shè)置了,根據(jù)自己喜好來就好了。。。(不過這個版本好像不穩(wěn)定,我設(shè)置了下黑色,直接看不到左邊面板了。。。重啟才行。。。)
1月13日
-
明明配置了tabbar卻不顯示。。。
我發(fā)現(xiàn)是路徑寫錯了。。。
改成醬紫就行了。。。

1月16號
- 使用navigator來跳轉(zhuǎn)頁面的時候, 后面要跟頁面url,跟src 無效的。。。





