rree
これが親コンポーネントで、ここから handleNewLikes 関数を prop として Row に渡します。
リーリーこれは、handleNewLikes 関数をメディアに渡す行コンポーネントです。
リーリーメディアでは、関数がコンソールで定義されている場合もあれば、未定義の場合もあります。また、ハートのアイコンをクリックして handleLikes 関数がトリガーされると、その中の handleNewLikes 関数は常に未定義として表示されます。
これがコンソールに表示される内容です
助けてくれてありがとう、数日間行き詰まってしまいました笑
おそらく何らかの状態管理ライブラリを使用できることはわかっていますが、それにはかなりの量のリファクタリングが必要になります。これでうまくいくはずだと感じていますが、そうしない限り、なぜ問題が発生するのか分かりません。私は近視です。
P粉7627302052024-02-27 09:48:52
コードをコピーし、何が起こっているかを確認できるようにいくつかのログを追加しました。 handleNewLikes
を Home -> Main
と Home -> Row 0
から渡しただけです。
残りの行の handleNewLikes
は、この関数を渡さなかったため、正しく 未定義
になります。私の言っている意味を理解するには、これらのログをチェックしてください:
#Media コンポーネントに到達したら、
handleLikes を呼び出すときに、
未定義の
handleNewLikes 関数を使用しようとします。
これは、
Media コンポーネントの
like ボタン をクリックしたときのログです:
handleNewLikes を含む、
Home の
Row 実装のパラメータを更新することです。
<行
行ID='1'
title='今日の米国の映画トップ 10'
fetchURL={リクエスト.人気}
handleNewLikes={handleNewLikes}
/>
//行 2、行 3 などにも同じことが当てはまります...
これはRow 1
に関数を渡していいねボタンをクリックしたログです
#^ 何らかの状態管理を使用する必要があります。これを行うためにライブラリを使用する必要はありません。状態がそれほど複雑でない場合は、
AuthContext