ホームページ  >  に質問  >  本文

Next.js: クライアント コンポーネントがデータを変更した後にサーバー コンポーネントを更新する

私はまだこのシナリオを理解しようとしているところです。 Next.js 13 でこれを行う正しい方法を誰かが提案できますか?

たとえば次のようにサーバー コンポーネントにユーザーのリストを表示します (MongoDB を使用):

リーリー

同じページで、ユーザーを追加するためのクライアント コンポーネントも定義しました:

リーリー

以下に示すように、両方がサーバー コンポーネント ページに一緒に表示されます。

リーリー

新しいユーザーがコレクションに追加されたことを UsersList に「リロード」または「通知」して、新規/更新されたユーザーを強制的に表示するにはどうすればよいですか?

P粉832212776P粉832212776330日前706

全員に返信(2)返信します

  • P粉904405941

    P粉9044059412023-10-27 13:25:50

    https://stackoverflow.com/a/75127011/17964403 これはクライアント側での変更に最適ですが、クライアントからの入力を使用して検索/フィルタリングなどの操作を行い、同じデータを再フェッチしたい場合は、

    のようなことを行うことができます。

    リーリー

    サーバーコンポーネントでは、検索パラメータを小道具として受け取り、検索パラメータが存在するかどうかを確認し、存在する場合はそのパラメータをフェッチ呼び出しで渡すと、フィルタリングされたアイテムが取得されます。

    返事
    0
  • P粉345302753

    P粉3453027532023-10-27 12:33:01

    クライアント コンポーネントによって更新されたデータをサーバー コンポーネントに反映するには、router.refresh() (router #) を使用できます。 ##useRouter()。 To Do リスト アプリの使用例を次に示します: リーリー リーリー

    ⚠️:

    refresh()クロール リクエストはキャッシュされています。この例では cache: 'no-store' となっているのはそのためです。

    返事
    0
  • キャンセル返事