記錄一次使用react非同步不更新資料的問題

2022-02-02 00:14:27 字數 853 閱讀 7353

專案使用的是react+mobx,簡要如下:

元件**:

componentdidmount() 

componentwillreceiveprops(nextprops)

async handlecard() = this

.props;

await getname();

console.log(name, "name");

console.log(

this.props.name, "name");

}

mobx檔案**:

@action

initzeroonecarddata = async () =>;

gettime() );

}

問題:在mobx中使用非同步請求後更改了name的值,但是在頁面元件中:

componentwillreceiveprops 的生命週期中已經更新了該值,但是在 componentdidmount 生命週期的非同步await後面

console.log(name, "name"); //沒有更新 還是原來的值

console.log(this.props.name, "name"); //已經更新了,是非同步請求之後的值

原因:name 取自 await 之前的 this.props 的值,然後才執行的 await非同步請求,所以請求回來,原來的 props 是沒有變化的;

而第二行: this.props.name 取自 await 非同步請求之後的 props ,因此可以獲取到最新的props;

componentwillreceiveprops 該生命週期是乙隻有最新的props

記錄一次oracle使用記錄

使用oracle資料庫的專案到我這邊,需要修改,咱雖然 學過 oracle,但那畢竟已經過去了。哈哈。使用database configuration assistant 建立資料庫,建立快完的時候,說我沒有監聽啥的,然後 通過 net manager 建立了,qizhong1 其中選中的那個就是建...

一次非同步處理

首發於 一次非同步處理 今天回憶了一下在做專案的時候遇到的乙個小問題。就是當兩個介面請求的資料相互沒有影響時,而你卻需要這兩個介面的所有資料,你會怎麼做呢?當我處理這個的時候想到的第乙個方案是這樣的。由於兩個介面相互沒有影響,我使用了乙個中間量進行判斷。是這樣寫的。var flag 2 請求資料1 ...

關於 的一次使用記錄

使用場景 專案裡面在做乙個請求時候發現,不同的請求,有些請求會跳轉到 spring mvc的自定義方法中,有些卻不進去。自定義的方法 class com.zhuanche.car.web.resolver.adminbaseformargumentresolver adminbaseformargu...