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

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

如何使用 React 內置的 React.memo 比較功能?

如何使用 React 內置的 React.memo 比較功能?

ITMISS 2022-11-11 16:18:58
我想檢查某個 prop 是否手動更改,然后使用 React 的內置比較功能對其他 prop 進行比較。例如:React.memo(  () => <div />,  (prevProps, nextProps) => {    if (!nextProps.visible) {      return true;    }    return React.shallowCompare(prevProps, nextProps);  },);我可以輕松編寫自己的比較函數或從 React 的源代碼復制/粘貼,但如果 React 更改了它們的默認比較函數,那么我也必須手動更改我的函數。有沒有辦法使用 React 的內置比較功能React.memo?此外,AFAIKreact-addons-shallow-compare已過時。
查看完整描述

1 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

抱歉不行。shallowEqual如果您不提供比較功能,則React 默認為,但如果您返回任何特殊的東西(例如return null),則沒有使用默認行為的額外邏輯。


React 的用法:


const prevProps = currentChild.memoizedProps;

// Default to shallow comparison

let compare = Component.compare;

compare = compare !== null ? compare : shallowEqual;

if (compare(prevProps, nextProps) && current.ref === workInProgress.ref) {

...

React 目前沒有導出shallowEqual. 但是,React 的文檔指出它只是淺比較,這不太可能發生太大變化,并且可以像您所知的那樣輕松實現(示例)。我假設這個決定是為了減少他們的團隊向開發人員公開的 API。


查看完整回答
反對 回復 2022-11-11
  • 1 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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