[英]Update the redux state in the reducer having array of objects
我是React Redux的新手。
我確實有一個像
const initialState = {
Low: [
{
id: 0,
technologyId: 0,
technology: '',
level: 'EASY'
}
],
Medium: [
{
id: 0,
technologyId: 0,
technology: '',
level: 'MEDIUM'
}
],
High: [
{
id: 0,
technologyId: 0,
technology: '',
level: 'TOUGH'
}
]
}
Now,
export default function QuizData(state = initialState, action) {
switch (action.type) {
case QUIZ_DATA:
return {
...state,
Low: action.data,
error: false,
}
case RESET_SETUP_QUIZ: {
console.log("intial state is ", ...state);
return {
...state
}
現在,這里發生的是經過一些操作后,此對象隨每個鍵具有一些值而發生變化。 喜歡,
{
Low: [
{
id: 0,
technologyId: 11,
technology: 'xsxs',
level: 'EASY'
}
],
Medium: [
{
id: 0,
technologyId: 22,
technology: 'swwsw',
level: 'MEDIUM'
}
],
High: [
{
id: 0,
technologyId: 110,
technology: 'xsxsx',
level: 'TOUGH'
}
]
}
所以,這變了。現在,我想做的是,
當用戶單擊按鈕時,我想將其更改為初始狀態。
這樣就不會有任何值,因為它應該與默認值相同。
所以,我嘗試了什么
return {
initalState
}
但是在這里,初始狀態也具有相同的值。
因此,我沒有辦法使它達到初始水平。
有人可以幫我嗎?
因為您使用原始狀態對象並返回它的修改版本(即,您確實會影響您的initialState)。
您必須在化簡器中創建狀態的副本,例如
case QUIZ_DATA:
return Object.assign(
{},
state,
{
Low: action.data,
error: false
}
)
case RESET_SETUP_QUIZ: {
return Object.assign(
{},
state
)
}
您可以使用諸如immutablejs之類的專用庫來處理此問題( https://redux.js.org/recipes/usingimmutablejs )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.