Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Menetapkan Semula Keadaan Kedai Redux dengan Betul Semasa Log Keluar Pengguna?

Bagaimana untuk Menetapkan Semula Keadaan Kedai Redux dengan Betul Semasa Log Keluar Pengguna?

DDD
Lepaskan: 2024-12-01 00:28:11
asal
175 orang telah melayarinya

How to Properly Reset a Redux Store State Upon User Logout?

Menetapkan semula Keadaan Kedai Redux semasa Log Keluar Pengguna

Dalam Redux, kedai mengekalkan keadaan aplikasi. Memastikan kedai ditetapkan semula kepada keadaan asalnya apabila pengguna log keluar adalah penting untuk mengelakkan isu caching dan pencemaran data.

Untuk mencapainya, satu pendekatan melibatkan penciptaan pengurang akar tersuai. Ia akan mewakilkan pengendalian tindakan kepada pengurang yang dihasilkan oleh combineReducers(). Walau bagaimanapun, apabila ia menghadapi tindakan USER_LOGOUT, ia akan mengembalikan keadaan awal.

Dengan mengandaikan anda mempunyai rootReducer yang kelihatan seperti ini:

const rootReducer = combineReducers({
  // Your app's top-level reducers
});
Salin selepas log masuk

Anda boleh menamakan semula kepada appReducer dan mentakrifkan rootReducer baharu yang mewakilkan kepada appReducer:

const appReducer = combineReducers({
  // Your app's top-level reducers
});

const rootReducer = (state, action) => {
  return appReducer(state, action);
};
Salin selepas log masuk

Seterusnya, ajar rootReducer untuk mengembalikan keadaan awal apabila tindakan USER_LOGOUT diterima. Reducer diketahui mengembalikan keadaan awal apabila dipanggil dengan undefined sebagai argumen pertama, tanpa mengira jenis tindakan. Kami boleh memanfaatkan tingkah laku ini:

const rootReducer = (state, action) => {
  if (action.type === 'USER_LOGOUT') {
    return appReducer(undefined, action);
  }

  return appReducer(state, action);
};
Salin selepas log masuk

Dengan pengubahsuaian ini, semua pengurang akan dimulakan semula apabila USER_LOGOUT, dan mereka boleh mengembalikan keadaan berbeza berdasarkan action.type.

Jika aplikasi anda menggunakan redux-persist, anda mungkin perlu mengosongkan keadaan yang disimpan juga:

const rootReducer = (state, action) => {
  if (action.type === 'SIGNOUT_REQUEST') {
    // Remove the persisted state for all keys defined in your persistConfig(s)
    storage.removeItem('persist:root');
    // storage.removeItem('persist:otherKey');

    return appReducer(undefined, action);
  }

  return appReducer(state, action);
};
Salin selepas log masuk

Pendekatan ini memastikan kedua-duanya stor Redux dalam memori dan keadaan yang disimpan ditetapkan semula apabila pengguna log keluar, mengekalkan keadaan bersih untuk sesi pengguna berikutnya.

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Semula Keadaan Kedai Redux dengan Betul Semasa Log Keluar Pengguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan