반응형
상태가 초기 상태로 초기화되지 않음
나는 새로운 사람이다.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
}
하지만 그 후 나는 그 일을 시도했다.object.assign
.
case QUIZ_DATA:
return Object.assign(
{},
state,
{
Low: action.data,
error: false
}
)
그러나 여전히 여기서는 첫 번째 수준의 변수만 복사한다.
그래서, 나는 여전히 이것을 할 수 없다.
누가 이것 좀 도와줄래?
object.assign은 딥 카피에 도움이 되지 않는다.
딥 카피 사용을 원할 경우.
let newObj = JSON.parse(JSON.stringify(obj));
여기 newObj가 복사될 것이다.
초기 상태로 재설정하려면 다음과 같이 하십시오.
case RESET_SETUP_QUIZ: {
return initialState;
바로 그겁니다.환원기 기능이 처음 호출되면state
초기 상태가 아니라 현재 상태가 될 것이다.
의 기본 조건에 대해 어떤 것도 반환하지 않는다는 점에 주의하십시오.action.type
. 상태 반환 켜기default:
둘째로return { ...state, low: action.data, error: false }
즉시 사용할 수 있어야 한다.
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
}
}
default: {
return state;
}
}
}
이것은 잘못된 것이다.
case RESET_SETUP_QUIZ: {
console.log("intial state is ", ...state);
return {
initialState
}
당신은 그래야 한다.
case RESET_SETUP_QUIZ: {
console.log("intial state is ", initialState);
return initialState;
아니면
case RESET_SETUP_QUIZ: {
console.log("intial state is ", initialState);
return {
...initialState
};
참조URL: https://stackoverflow.com/questions/53663301/state-is-not-getting-initialized-to-the-initial-state
반응형
'Programing' 카테고리의 다른 글
전자 리액트렉스.양식 창의 상태 업데이트가 기본 창에 반영되지 않음 (0) | 2022.03.11 |
---|---|
작업 큐:작업 오류: 정의되지 않은 것은 개체가 아니다(평가 '_the.view)._component.measureInWindow') reactive native (0) | 2022.03.11 |
VueJS 2: VueX를 사용하여 재귀 구성 요소 관리 (0) | 2022.03.11 |
Vuejs - 클릭 시 v-for 루프 방법 (0) | 2022.03.11 |
함수 인수의 별표만 표시하시겠습니까? (0) | 2022.03.11 |