/ / Redux reducer अपरिवर्तनीय अद्यतन नहीं कर रहा है। Redux स्टोर - प्रतिक्रिया-मूल, पारिस्थितिकी -6, Redux, प्रतिक्रिया-redux, immutable.js

Redux reducer immutable.js को अद्यतन नहीं कर रहा है Redux store - प्रतिक्रिया-मूल, ecmascript-6, redux, प्रतिक्रिया-redux, immutable.js

मैं "इम्यूटेबल.जेएस रिकॉर्ड को संशोधित करने के लिए ऐसा नहीं कर सकता हूं जो मेरे ऐप के लिए रिडक्स स्टोर है।

let makeVepo: RecordFactory<any> = Record({
product: new makeProduct(),
menu: new makeMenu(),
formControls: new makeFormControls(),
some: 10
})

export const vepo = new makeVepo()

vepo.set("some", 200)

vepo.some 200 में अपडेट नहीं होता है, यह 10 तक रहता है

मेरा redux स्टोर reducer से अपडेट नहीं होगा।

यह काम करना चाहिए। जब मैंने यहां एक ब्रेकपॉइंट लगाया:

यहां छवि विवरण दर्ज करें

यहाँ मैं राज्य को सांत्वना में हेरफेर कर रहा हूँ, और यह जारी नहीं है:

यहां छवि विवरण दर्ज करें

उत्तर:

जवाब के लिए 3 № 1

आप एक अपरिवर्तनीय वस्तु को बदलने की कोशिश कर रहे हैं। जब तुम करोगे vepo.set("some", 200), यह संशोधित नहीं करता है vepo, यह आपके द्वारा निर्दिष्ट मूल्य के साथ एक नई वस्तु देता है।

आप इसे आजमा सकते हैं:

const { Record } = require("immutable");

const makeVepo = Record({
product: "function",
menu: "function",
formControls: "function",
some: 10
})

const vepo = new makeVepo()

const newObject = vepo.set("some", 200)
console.log(vepo.toJS()) // `some` is still 10
console.log(newObject.toJS()) // `some` is 200

उस पर प्रयास करें एनपीएम रनकिट या आपके स्थानीय वातावरण में। नई ऑब्जेक्ट में अद्यतन मान है।

नोट: मैंने कोड को अनुकूलित किया है ताकि यह अलगाव में चल सके।