小程式SetData同步還是非同步問題
小程式SetData同步還是非同步
剛進新公司不久,學了幾天小程式,由於之前是用React的,所以學起來相對輕鬆,但是也有許多不同,不明白的點.
問題
React中,this.setState是非同步的,改變state之後是不能立馬獲取到改變之後的值的.
this.setState({
name:'zhang'
})
console.log(this.state.name);//不能立馬獲取到新的state值
小程式中:因為React的原因,所以以為小程式中也是不能立馬獲取到新的data值,但是…
this.setData({
name:'zhang'
})
console.log(this .data.name);//可以立馬獲取到新的data值
解答:
檢視小程式官方文件
可以看到 setData函式是
1. 將資料從邏輯層傳送到檢視層是非同步
2. 改變this.data是同步的
也就是說改變值是同步的,改變值之後渲染頁面是非同步的,
應該是為了提高效能,不可能改變一次資料渲染一次頁面,等所有data改變完之後一塊渲染頁面.
剛學習小程式不久,水平有限,希望批評與指正.
相關推薦
小程式SetData同步還是非同步問題
小程式SetData同步還是非同步 剛進新公司不久,學了幾天小程式,由於之前是用React的,所以學起來相對輕鬆,但是也有許多不同,不明白的點. 問題 React中,this.setState是非同步的,改變state之後是不能立馬獲取到改變之後的值的
小程式setData賦值的坑
小程式的每個頁面都有個data物件來存放當前頁面的變數,而小程式的setData可以直接給對應的元素進行賦值; Page({ data:{ goods: { id: 1, pic: '/image/goods1.png', }, n
小程式setData報錯未定義
在wx:request()中使用setData會報這樣的錯誤 因為這裡的this是相對於wx:request()的當前物件,我們可以這樣解決:因為這裡的wx:rewuest()是在頁面載入時呼叫,所以我們可以在onLoad()中定義一個變數that ,將this賦值給that,那麼此時
微信小程式setData的作用
小程式setData中修改和增加變數 首先在data()中設定變數, data: { message: 1, hidden: true, showModal: false, customerId: "" }, 然後等到需要修改變數的時候就需要
微信小程式---setData
data:{ obj:{ name:'hello' } } 對data中obj的name欄位進行重新賦值。 onLoad: function (option) { var value = 'obj.name';
微信小程式支付流程,非同步回撥及訊息模板呼叫(php原始碼)
首先還是老樣子把流程圖給大家發一下 商戶系統和微信支付系統主要互動: 1、小程式內呼叫登入介面,獲取到使用者的openid,api參見公共api【小程式登入API】 2、商戶server呼叫支付統一下單,api參見公共api【統一下單API】 3、商戶server呼叫再次簽
小程式 setdata key是變數
<input id='name' type='text' placeholder='姓名' value='{{Object.name}}' bindinput='getInputValue'/&g
微信小程式中Echarts資料非同步更新
就是微信小程式中使用echarts-for-weixin 1.wx.request 首先講講wx.request的使用: wx.request({ url: 'test.php', //僅為示例,並非真實的介面地址 data: { x: '
微信小程式setData()方法的詳解以及對陣列/json操作
一、setData()方法: 1、引數接受一個物件,以key,value的形式表示; 2、引數和變數名稱一致,可用一個值代替(es6新語法特性) 如上圖所示,在this.data中設定ceshi這條資料,在方法中,我們定義ceshi變數讓其等於that.data.ce
小程式setData方法修改data中物件或陣列的屬性值
開發微信小程式時,使用setData修改data中資料時,針對各種情況的解決方案如下: //示例data: data:{ code:'9527', baseInfo:{ name:'夏爾', age:19 }, family:[{ name:'大頭爸爸', a
微信小程式setData中鍵名key中使用變數
setData 函式用於將資料從邏輯層傳送到檢視層(非同步),同時改變對應的 this.data 的值(同步).setData中可以傳入的引數Object 以 key: value 的形式表示,將 this.data 中的 key 對應的值改變成 valu
小程式setData修改陣列某一項的值
官方文件是這樣的: changeItemInArray: function() { // you can use this way to modify a danamic data path this.setData({ 'array[0].t
小程式setData()陣列或物件
微信小程式開發中如要改變資料setData({})方法,如果涉及賦值物件下的某個欄位,或者陣列,是無法直接賦值的。方法一:用變數暫存陣列 如:let data = this.data.data; data.id="123" 或data[i]
小程式頁面載入還未拉取使用者資訊
今天做小程式的時候,遇到個問題,那就是吧使用者資訊放在app.js中的時候,在其他頁面呼叫的時候,總是出現null的欄位,後面坐了測試才知道是頁面載入完了,但是使用者資訊並沒有拉取完畢,為此的解決辦法就是在全域性封裝一個回撥函式getUserInfo: function
支付寶小程式setData報TypeError: Cannot read property 'setData' of undefined問題
我在onLoad函式中用this.setData重置了一個數值,然後就一直報錯,結果如下 問題原因: 無法找到setData這個定義,因為setData中是onLoad函式中的方法中的子節點, 無法使用this 解決方法 這個時候需要在方法的開始部分定義var
微信小程式 setData 的坑
最近在使用微信小程式的setData時,遇到了以下問題。如下: 官網文件在使用setData()設定陣列物件的某個元素的屬性時,是這麼使用的: Page({ data: { ar
小程式setData()超限怎麼辦
最近在做一個翻頁互動,遇到點setData的坑,最後想了個辦法給繞過去了,但我不知道各位有沒有更好的辦法,在這裡分享下我的處理辦法; 例如我有個列表,這個列表的總資料量不確定有多少,經我們產品交代,大促期間,至少會有1000條,從小程式的開發文件裡可以看到setData對資
微信小程式setData不起作用
setData函式注意事項 直接修改 this.data 而不呼叫 this.setData 是無法改變頁面的狀態的,還會造成資料不一致。 單次設定的資料不能超過1024kB,請儘量避免一次設定過多的資料。 不要把 data 中任何一項的 value 設為 undefi
微信小程式 setData
OK ,是在下輸了,微信小程式裡 js檔案的setData,用this.setData({})是行不通的,得先給this賦個值,一般是這樣的var that = this that.setData({
微信小程式語音同步智慧識別的實現案例
[toc] #### 一、背景 在小程式的一些應用場景中,會有語音轉文字的需求。原有的做法一般是先通過小程式的錄音功能錄下語音檔案,然後再通過呼叫語音智慧識別WebApi(比如百度雲AI平臺,科大訊飛平臺)將語音檔案轉成文字資訊,以上的做法比較繁瑣且使用者的體驗性較差。 為解決此問題,**微信直接開放了同聲傳