Terokai cara untuk mengubah suai nilai tatasusunan dalam kepingan Redux Store
P粉197639753
P粉197639753 2023-08-30 11:35:40
0
1
434
<p>Saya mempunyai Slice untuk menyimpan maklumat lokasi. Saya mengisytiharkan dua fungsi, set dan setLocation. Fungsi set menerima tatasusunan lokasi, dan fungsi setLocation harus menetapkan lokasi. </p> <p>Ini ialah data sampel yang disimpan dalam pembolehubah lokasi: </p> <pre class="brush:php;toolbar:false;">const locations = [{name: '1', index: 0}, {name: '2', index: 1}];</pre> ; <p>Ini adalah kod kepingan saya: </p> <pre class="brush:php;toolbar:false;">import { createSlice } daripada '@reduxjs/toolkit' eksport const locationsSlice = createSlice({ nama: 'lokasi', keadaan awal: { lokasi: null, }, pengurang: { set: (negeri, lokasi) => state.locations = locations.payload }, setLocation: (negeri, lokasi) => state.locations[location.index] = lokasi } }, }) export const { set, setLocation } = locationsSlice.actions eksport lokasi lalaiSlice.reducer</pre> <p>Panggilan untuk menetapkan(lokasi) adalah sah. Tetapi apabila lokasi ialah nilai dalam tatasusunan lokasi, saya tidak boleh menggunakan setLocation(lokasi) untuk menggantikan satu lokasi dalam tatasusunan lokasi. Apabila saya menggunakan console.log(state.location) dalam fungsi setLocation(), saya mendapat beberapa objek proksi. </p>
P粉197639753
P粉197639753

membalas semua(1)
P粉248602298

Anda di sinisetLocation操作中得到Proxy的问题是因为在搜索特定位置时,你传递了location.index,但你应该传递location.payload.index.

setLocation: (state, location) => {
   state.locations[location.payload.index] = location
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan