亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在設置值后可靠地運行代理陷阱

在設置值后可靠地運行代理陷阱

瀟湘沐 2023-03-18 16:16:45
我想像這樣創建一個代理。正如文檔似乎暗示的那樣,我使用了Reflect.set。function createStore<T>(reducer: Reducer<T>, initialState: T) {  const store = new Proxy(initialState, {    set(target, key, value) {      console.log('Trap has been activated');      return Reflect.set(target, key, value);    }  });}現在當我設置一個字段時,它確實有效地觸發了這個陷阱。但是,我想在設置值后觸發此陷阱。我嘗試了這個,希望Reflect.set返回我的下一個狀態:const nextState = Reflect.set(target, key, value);// my code herereturn nextState;相反,它返回一個布爾值。有沒有辦法在返回值之前獲取代理的“下一個值”?
查看完整描述

1 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

文檔澄清了Reflect.set一些事情:

返回值
一個布爾值,指示設置屬性是否成功。

如果你想得到設置后的值,你可以使用Reflect.get(target, key)或直接轉到目標(target[key]):

function createStore<T>(reducer: Reducer<T>, initialState: T) {

? const store = new Proxy(initialState, {

? ? set(target, key, value) {

? ? ? console.log('Trap has been activated');

? ? ? const retVal = Reflect.set(target, key, value);

? ? ? console.log(`New value: ${Reflect.get(target, key)}`);

? ? ? return retVal;

? ? }

? });

}


查看完整回答
反對 回復 2023-03-18
  • 1 回答
  • 0 關注
  • 110 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號