2017-10-10 2 views
0

J'essaye de construire un formulaire en utilisant FieldArrays de redux-form. Chaque champ du tableau fields doit avoir un champ "order". Je veux préremplir ce champ avec une valeur par défaut/initiale. Je sais comment fournir initialValues au formulaire, mais ne peux pas comprendre comment le faire pour un individu Field.Comment fournir une valeur initiale à un champ individuel sous forme redux?

const renderQuestion = ({ fields, meta: { error, submitFailed } }) => (
    <ul> 

    {fields.map((question, index) => (
     <li key={index}> 
     <button type="button" title="Remove Question" onClick={() => fields.remove(index)}> 
      x 
     </button> 
     <h4>Question #{index + 1}</h4> 
     <Field 
      name={`${question}.order`} 
      value={index + 1} // This line is an example to what I am trying to achieve 
      type="number" 
      component={renderField} 
      label="Order" /> 
     <Field name={`${question}.prompt`} type="text" component={renderField} label="Prompt" />   
     </li> 
    ))} 
    </ul> 
); 

const QuizStepAddForm = props => { 
     ... 
     <FieldArray name="questions" component={renderQuestion} /> 
     ... 
}; 

Répondre

0
+0

Sans blague :). Merci! – SaidAkh

+0

Merci encore @kngroo. Pouvez-vous s'il vous plaît m'aider une fois de plus? Pouvez-vous me dire comment je peux correctement fournir cette valeur 'initiale' à un composant enveloppé -' renderField', de sorte que cette valeur initiale sera un point de départ que l'utilisateur peut changer. J'ai essayé de le faire fonctionner de cette façon: ' SaidAkh

+0

Je ne suis pas exactement sûr de ce que vous voulez dire. Vous voulez passer une valeur initiale en tant que prop à un composant wrapper qui enveloppe ''? Vous voudrez peut-être lire sur les composants contrôlés et non contrôlés ici: https://reactjs.org/docs/forms.html#controlled-components – kngroo