मैं "इम्यूटेबल.जेएस रिकॉर्ड को संशोधित करने के लिए ऐसा नहीं कर सकता हूं जो मेरे ऐप के लिए रिडक्स स्टोर है।
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
उस पर प्रयास करें एनपीएम रनकिट या आपके स्थानीय वातावरण में। नई ऑब्जेक्ट में अद्यतन मान है।
नोट: मैंने कोड को अनुकूलित किया है ताकि यह अलगाव में चल सके।