में प्रोप बदलने पर राज्य को अपडेट करना मुझे एक प्रतिक्रिया फॉर्म में समस्या हो रही है और राज्य को सही तरीके से प्रबंधित करना है। मेरे पास एक फॉर्म में एक इनपुट इनपुट फ़ील्ड है (एक मोडल में)। प्रारंभिक मान getInitialState
में एक राज्य चर के रूप में सेट किया गया है, और इसे मूल घटक से पास किया जाता है। यह अपने आप में ठीक काम करता है।रिएक्ट फॉर्म
समस्या तब आती है जब मैं मूल घटक के माध्यम से डिफ़ॉल्ट start_time मान को अद्यतन करना चाहता हूं। अपडेट स्वयं पेरेंट घटक में setState start_time: new_time
के माध्यम से होता है। हालांकि मेरे रूप में, डिफ़ॉल्ट स्टार्ट_टाइम मान कभी नहीं बदलता है, क्योंकि इसे केवल getInitialState
में परिभाषित किया जाता है।
मैंने componentWillUpdate
का उपयोग setState start_time: next_props.start_time
के माध्यम से राज्य में बदलाव को मजबूर करने के लिए किया है, जो वास्तव में काम करता था, लेकिन मुझे Uncaught RangeError: Maximum call stack size exceeded
त्रुटियां मिलीं।
तो मेरा सवाल यह है कि इस मामले में राज्य को अद्यतन करने का सही तरीका क्या है? क्या मैं किसी भी तरह इस गलत के बारे में सोच रहा हूँ?
वर्तमान कोड:
@ModalBody = React.createClass
getInitialState: ->
start_time: @props.start_time.format("HH:mm")
#works but takes long and causes:
#"Uncaught RangeError: Maximum call stack size exceeded"
componentWillUpdate: (next_props, next_state) ->
@setState(start_time: next_props.start_time.format("HH:mm"))
fieldChanged: (fieldName, event) ->
stateUpdate = {}
stateUpdate[fieldName] = event.target.value
@setState(stateUpdate)
render: ->
React.DOM.div
className: "modal-body"
React.DOM.form null,
React.createElement FormLabelInputField,
type: "time"
id: "start_time"
label_name: "Start Time"
value: @state.start_time
onChange: @fieldChanged.bind(null, "start_time”)
@FormLabelInputField = React.createClass
render: ->
React.DOM.div
className: "form-group"
React.DOM.label
htmlFor: @props.id
@props.label_name + ": "
React.DOM.input
className: "form-control"
type: @props.type
id: @props.id
value: @props.value
onChange: @props.onChange
धन्यवाद। यह मुझे बहुत मदद करता है – Sukanta
क्या होगा यदि आप करना चाहते हैं "और आप उस समय माता-पिता से अपडेट करना चाहते हैं, न कि बच्चे के घटक।" दूसरी तरह के आसपास? – ram4nd
फिर यह बच्चे घटक के भीतर एक सरल 'सेटस्टेट()' होगा .. जब तक कि मुझे कुछ याद नहीं आ रहा है। –