Redux Store スライスの配列値を変更する方法を調べる
P粉197639753
2023-08-30 11:35:40
<p>位置情報を保存するスライスがあります。 set と setLocation という 2 つの関数を宣言しました。 set 関数は位置の配列を受け入れ、setLocation 関数は位置を設定する必要があります。 </p>
<p>これは、location 変数に保存されているサンプル データです: </p>
<pre class="brush:php;toolbar:false;">const places = [{name: '1', Index: 0}, {name: '2', Index: 1}];</pre> ;
<p>これは私のスライス コードです: </p>
<pre class="brush:php;toolbar:false;">import { createSlice } from '@reduxjs/toolkit'
const の場所をエクスポートSlice = createSlice({
名前: '場所'、
初期状態: {
場所: null、
}、
レデューサ: {
set: (状態、場所) => {
状態.場所 = 場所.ペイロード
}、
setLocation: (状態, 場所) => {
状態.場所[場所.インデックス] = 場所
}
}、
})
import const { set, setLocation } = locationSlice.actions
デフォルトの場所をエクスポートSlice.reducer</pre>
<p>set(locations) の呼び出しは有効です。ただし、location が location 配列内の値である場合、setLocation(location) を使用して location 配列内の 1 つの位置を置き換えることはできません。
setLocation() 関数で console.log(state.location) を使用すると、いくつかのプロキシ オブジェクトが取得されます。 </p>
setLocation
操作で
Proxyが発生する問題は、特定の場所を検索するときに
location.indexを渡すためですが、
location.payload.indexを渡す必要があります。
リーリー