2016-09-14 6 views
8

के लिए v6 शो सत्यापन त्रुटि redux फार्म की v6 में हम निम्नलिखितredux फार्म का चयन क्षेत्र

हम कस्टम इस

const renderField = ({ input, label, type, meta: { touched, error } }) => (
    <div> 
    <label>{label}</label> 
    <div> 
     <input {...input} placeholder={label} type={type}/> 
     {touched && error && <span>{error}</span>} 
    </div> 
    </div> 
) 

और में की तरह renderField बना सकते हैं की तरह सामान्य इनपुट फ़ील्ड के लिए त्रुटियाँ दिखा सकते हैं प्रपत्र, बस हम उपयोग कर सकते हैं कि कस्टम

<Field name="username" type="text" component={renderField} label="Username"/> 

renderField अब मुझे पता है, हम चयन क्षेत्र के लिए यह एक ही कैसे कर सकते की जरूरत है, और हम कैसे इस कस्टम renderFields, एक करने के लिए लटकती विकल्पों पास करना चाहिए चयन के लिए कस्टम रेंडरफिल्ल्ड बनाने के लिए विचार?

+0

इससे मदद मिल सकती है http://redux-form.com/6.0.0-alpha.15/examples/selectingFormValues/ –

+0

यह पुराना पुराना है, इसका उपयोग करके चयन प्रदर्शित करने में सक्षम है, लेकिन इसकी घटनाओं को ट्रैक नहीं करना, परिवर्तन , ड्रॉपडाउन –

उत्तर

8

आप कुछ कोड दोहराव कोई आपत्ति नहीं है, तो आप इसे इस तरह कर सकता है:

<Field name="username" component={renderSelectField} label="Username"> 
    { mySelectOptions.map(option => <option value={option.value}>{option.text}</option>) } 
</Field> 

आपको लगता है कि एक करने के लिए विकल्पों गुजर देख सकते हैं:

const renderSelectField = ({ input, label, type, meta: { touched, error }, children }) => (
    <div> 
    <label>{label}</label> 
    <div> 
     <select {...input}> 
     {children} 
     </select> 
     {touched && error && <span>{error}</span>} 
    </div> 
    </div> 
) 

रूप में सेवन चयन props.children के माध्यम से किया जाता है, ठीक उसी तरह जब आप घटक component="select" के साथ उपयोग करेंगे।

यदि आप डुप्लिकेशन नहीं चाहते हैं, तो आप मूल renderField को थोड़ा अधिक स्मार्ट बनाने की कोशिश कर सकते हैं। उदाहरण के लिए, आप देख सकते हैं कि children में विकल्प-टैग हैं, और यदि ऐसा है, तो input के बजाय <select> प्रस्तुत करें।

+1

में मूल्य आश्चर्यजनक, धन्यवाद ''' 'बच्चों के' विशेषता उपयोग के बारे में मुझे बताने के लिए धन्यवाद। –

+0

स्थानीय राज्य के आधार पर चयन को अक्षम कैसे करें? –

+0

आप क्षेत्र में मनमानी प्रोप पास कर सकते हैं, इसलिए बस अक्षम राज्य '<फ़ील्ड अक्षम = {this.state.isDisabled}> 'के लिए एक को पास करें। 'वास्तविक' '