Mengakses Redux State in Action Creators
Tindakan Redux biasanya direka bentuk untuk menjadi "nipis" dan mengandungi hanya maklumat yang diperlukan untuk mengemas kini aplikasi negeri. Walau bagaimanapun, dalam sesetengah senario, anda mungkin perlu mengakses keadaan kedai global dalam pencipta tindakan. Artikel ini meneroka dua pendekatan untuk berbuat demikian dan memberikan panduan tentang penggunaannya.
Menggunakan Kedai Singleton
Satu pendekatan melibatkan pengimportan kedai tunggal dan mengakses keadaannya secara langsung.
import store from '../store'; export const SOME_ACTION = 'SOME_ACTION'; export function someAction() { return { type: SOME_ACTION, items: store.getState().otherReducer.items, } }
Walaupun pendekatan ini mudah dilaksanakan, pendekatan ini sangat bergantung pada kedai sebagai satu unit dan terdedah sebagai import modul. Reka bentuk ini tidak digalakkan kerana ia menghalang pelaksanaan pemaparan pelayan, di mana tika kedai yang berasingan biasanya diperlukan setiap permintaan.
Menggunakan Redux Thunk Middleware
Pendekatan yang disyorkan adalah untuk memanfaatkan perisian tengah Redux Thunk. Perisian tengah Thunk membenarkan fungsi tak segerak dihantar sebagai tindakan, menyediakan akses kepada kaedah getState().
export const SOME_ACTION = 'SOME_ACTION'; export function someAction() { return (dispatch, getState) => { const {items} = getState().otherReducer; dispatch(anotherAction(items)); } }
Pendekatan ini memerlukan penggunaan Redux Thunk, tetapi ia membenarkan akses fleksibel kepada keadaan kedai pada kedua-dua pelanggan dan persekitaran pelayan.
Pertimbangan
Penggunaan getState() dalam pencipta tindakan telah dibahaskan dalam komuniti Redux. Walaupun sesetengah pembangun menentangnya, yang lain percaya ia boleh diterima dalam senario tertentu, seperti penghantaran bersyarat atau mengakses data cache.
Akhirnya, pendekatan terbaik bergantung pada keperluan aplikasi tertentu. Jika akses kepada keadaan kedai diperlukan dalam pencipta tindakan, sama ada kedai tunggal atau pilihan perisian tengah Thunk boleh dipertimbangkan. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa tindakan secara amnya harus disimpan "nipis" untuk mengekalkan kejelasan dan kebolehkesanan.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Redux State dalam Action Creators?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!