Terokai cara untuk mengubah suai nilai tatasusunan dalam kepingan Redux Store
P粉197639753
2023-08-30 11:35:40
<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>
Anda di sini
setLocation
操作中得到Proxy
的问题是因为在搜索特定位置时,你传递了location.index
,但你应该传递location.payload.index
.