ich folgende Fehler halten Staat Minderer zu ändern, nachdem er versuchte Zustand in meinem Minderer geworfen bekommen zu aktualisieren:Kann nicht herausfinden, wie, ohne dass eine Mutation
"Error: A state mutation was detected inside a dispatch, in the path:
quiz.questions.0.answer
. Take a look at the reducer(s) handling the ac..."
Ich bin mir ziemlich sicher, dass ich mutiert bin nicht der ursprüngliche Zustand, wie ich benutze object.assign noch der Fehler besteht.
Mein Minderer:
case types.UPDATE_QUIZ_ANSWER:
let newStateObject = Object.assign({}, state);
let currentQuestion = newStateObject.questions.find(x => x.id == parseInt(action.data.questionId));
currentQuestion.answer = action.data.answer;
return Object.assign({}, newStateObject);
Mein Zustand Objekt:
{"questions":
[{"id":1,"questionText":"Camps is?","multipleChoiceOption1":
{"value":"1","label":"Great"},"multipleChoiceOption2":
{"value":"2","label":"Fun"},"multipleChoiceOption3":
{"value":"3","label":"Awesome"},"multipleChoiceOption4":
{"value":"4","label":"All of the above"},
"answer":"2"},
{"id":2,"questionText":"At Camps we will?","multipleChoiceOption1":
{"value":"1","label":"AAA"},"multipleChoiceOption2":
{"value":"2","label":"Adult Focused"},"multipleChoiceOption3":
{"value":"3","label":"CCC"},"multipleChoiceOption4":
{"value":"4","label":"All of the above"},
"answer":"3"}],
"results":
{"quizPass":false,"quizResults":[]}}"
Ich bin in der Tat kombinieren reduders verwenden, haben aber Fälle sowohl für Frage und Zustandsänderungen in der gleichen Minderer führen wie sie beide mit Aktionen umgehen, die in meiner Quiz-Komponente generiert werden, aber diese sollten vielleicht durch separate Reduzierungen behandelt werden? Danke für den Vorschlag auf immutable.js, schaue es jetzt an –