Saya masih cuba memahami senario ini. Bolehkah sesiapa mencadangkan cara yang betul untuk melakukan ini dalam Next.js 13?
Saya memaparkan senarai pengguna dalam komponen pelayan, contohnya seperti ini (menggunakan MongoDB):
// UsersList.jsx const UsersList = () => { const users = await usersCollection.getUsers() return ( <div> {users.map(user) => <div>{user}</div>} </div> ) }
Pada halaman yang sama saya juga menentukan komponen pelanggan untuk menambah pengguna:
// UsersEdit.jsx 'use client' const UsersEdit = () => { const handleAdd() => // calls POST to /api/users return // render input + button }
Kedua-duanya dipaparkan bersama dalam halaman komponen pelayan, seperti yang ditunjukkan di bawah:
// page.jsx const Users = () => { return ( <div> <UsersList /> <UsersEdit /> </div> ) }
Bagaimanakah saya harus "memuat semula" atau "memberitahu" UsersList
bahawa pengguna baharu telah ditambahkan pada koleksi untuk memaksanya menunjukkan pengguna baharu/dikemas kini?
https://stackoverflow.com/a/75127011/17964403 Ini bagus untuk bermutasi pada sisi klien, tetapi jika anda ingin melakukan sesuatu seperti mencari/menapis menggunakan input daripada klien, dan ingin mengambil semula data yang sama, anda boleh melakukan sesuatu seperti
Dalam komponen pelayan anda akan menerima parameter carian sebagai prop, lihat jika parameter carian wujud, jika wujud kemudian lulus parameter itu dalam panggilan ambil dan anda akan mendapat item yang ditapis.
Untuk menggambarkan data yang dikemas kini oleh komponen klien pada komponen pelayan, anda boleh menggunakan
router.refresh()
,其中router
是useRouter()
. Berikut ialah contoh menggunakan apl senarai tugasan:⚠️: Cache hasil yang sama mungkin dijana semula jika permintaan pengambilan dicache . Inilah sebabnya
cache: 'no-store'
cache: 'no-store'
dalam contoh ini