Mengakses Redux Store State in Action Creators
Apabila membuat tindakan dalam Redux, anda mungkin menghadapi keperluan untuk mengakses keadaan kedai global. Artikel ini akan meneroka dua pendekatan untuk mencapai ini: mengakses keadaan secara terus melalui pembolehubah kedai yang diimport atau menggunakan perisian tengah Redux Thunk.
Mengakses Keadaan Secara Terus
<code class="javascript">import store from '../store'; export const SOME_ACTION = 'SOME_ACTION'; export function someAction() { return { type: SOME_ACTION, items: store.getState().otherReducer.items, } }</code>
Pendekatan ini bergantung pada kedai sebagai singleton yang dieksport daripada modul. Walaupun berfungsi secara teknikal, ia tidak disyorkan kerana ia merumitkan pemaparan sebelah pelayan di mana kedai berasingan diperlukan untuk setiap permintaan.
Menggunakan Redux Thunk
<code class="javascript">export const SOME_ACTION = 'SOME_ACTION'; export function someAction() { return (dispatch, getState) => { const {items} = getState().otherReducer; dispatch(anotherAction(items)); } }</code>
Menggunakan Redux Thunk middleware membenarkan akses kepada keadaan kedai melalui fungsi getState. Pendekatan ini lebih disukai kerana ia berfungsi dengan lancar dalam kedua-dua persekitaran pelanggan dan pelayan.
Pertimbangan
Terdapat pendapat yang berbeza tentang penggunaan getState dalam pencipta tindakan. Sesetengah berpendapat bahawa ia harus dihadkan kepada senario di mana data cache disemak atau status pengesahan disahkan. Yang lain berpendapat bahawa penggunaan getState boleh diterima.
Akhirnya, pendekatan terbaik bergantung pada keperluan khusus aplikasi anda. Walaupun tindakan sepatutnya ringkas, terdapat kes di mana pencipta tindakan mengakses keadaan secara langsung dalam tindakan mungkin wajar.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Redux Store State in Action Creators: Direct vs. Redux Thunk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!