国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ReactJS - カスタムフックリターン関數(shù)は內(nèi)部狀態(tài)の実際のデータを保存しない
P粉729436537
P粉729436537 2023-09-12 08:49:22
0
1
615

通知ウィジェットのカスタム フックuseNotificationsがあります。このフックは、次の要素を含む配列を返します (ant.design メッセージ API に似ています):

  • add: 新しい通知を追加する関數(shù)
  • remove: 通知IDを取得して通知を削除する関數(shù)
  • contextHandler: JSX
  • がコンポーネントのレンダリングに渡されます

ユーザーが add を呼び出すと、通知を削除するために使用できる ID が與えられます

この質(zhì)問は特に削除機(jī)能に関するものです。新しい通知を追加した直後にこの関數(shù)を呼び出しているため、関數(shù)は古いリストのコピーを受け取るため、新しい要素はなく、エラーがスローされます。コンポーネントが同じ API を使用するように修正するにはどうすればよいですか?

useNotification フック 使用方法

Codesandbox (テストのために、setTimeout を?qū)g行すると、3 秒以內(nèi)に remove() が呼び出されます): https://codesandbox.io/s/goofy-smoke -5q7dw3?ファイル=/src/App.js:405-440

P粉729436537
P粉729436537

全員に返信(1)
P粉478188786

remove 関數(shù)で、最新のステータス値にアクセスできる ステータス アップデータ関數(shù) を使用することができます。これにより、コンポーネントが remove() で再レンダリングされる前に、新しい list 狀態(tài)にアクセスできるようになります。

注: 現(xiàn)在、ネストされたオブジェクトの isMounted プロパティを false に設(shè)定することで、元の狀態(tài)を変更しています。配列をコピーする場合でも、再レンダリングの問題を避けるために、更新されるオブジェクトもコピーする必要があります。

ここでは、狀態(tài)の最新の値にアクセスし、狀態(tài)の突然変異を回避する方法に関するいくつかの変更を示します。 リーリー

以下の例を參照してください:

最新のダウンロード
詳細(xì)>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート