2017-03-29 3 views
2

Ich benutze das Redux, um Komponenten basierend auf einem Wert auszublenden und anzuzeigen. Wenn ich zwischen den Optionen wechsle, möchte ich die Werte löschen.Redux Formular Clearing Feldwerte

Wie lösche ich Werte aus dem Status, wenn zwischen Feldern gewechselt wird, die versteckt und angezeigt werden?

Wie wird empfohlen, jedes Feld zu validieren?

Ist es möglich, das Feld vollständig aus dem Status zu entfernen?

<div> 
    <form> 
     <Fields 
     component={RadioButtonGroupField} 
     names={['radioButtonGroup', 'nameTextField', 'nickNameTextField']} 
     /> 
    </ form> 
</div> 

function RadioButtonGroupField(fields) { 
    return(
     <div> 
     <RadioButtonGroupComponent 
      {...fields.radioButtonGroup.input} 
      {...fields.radioButtonGroup.meta} 
     /> 
     { 
      (fields.radioButtonGroup.input.value === 'name' || 
      fields.radioButtonGroup.input.value === 'both') && 
      <NameTextFieldComponent 
      {...fields.radioButtonGroup.input} 
      {...fields.radioButtonGroup.meta} 
      /> 
     } 
     { 
      (fields.radioButtonGroup.input.value === 'nickname' || 
      fields.radioButtonGroup.input.value === 'both') && 
      <NicknameTextFieldComponent 
      {...fields.radioButtonGroup.input} 
      {...fields.radioButtonGroup.meta} 
      /> 
     } 
     </div> 
    ); 
    } 

Antwort

0

Warum ist es wichtig, ob der andere Wert in diesem Zustand ist? Scheint so, als könntest du nach dem Abschicken deinen Radio-Wert sehen, um zu bestimmen, welcher der anderen Werte verwendet werden soll.

, aber Ihre Frage zu beantworten, könnten Sie möglicherweise einen onChange Hörer auf Ihrem Funkfeld setzen, und lösen Sie eine change(value==='name' ? 'nickname' : 'name', null) Aktion (nicht die fields.radioButtonGroup.input.onChange() nennen vergessen) den Wert in der Eingabe, die Sie ignorieren mögen zu zerstören.

+0

Eine letzte Sache, was ist die beste Möglichkeit, die Validierung zu jedem Feld hinzuzufügen? – eNddy

+0

Sie könnten entweder eine Validierungsfunktion auf Feldebene hinzufügen (http://redux-form.com/6.6.1/examples/fieldLevelValidation/) oder eine Validierungsfunktion für den gesamten Datensatz bereitstellen (https: // redux -form.com/6.6.1/examples/syncValidation/). –

+0

Ich bin nicht klar, wie ich eine "Feld-Level-Validierungsfunktion" zu "Fields" hinzufügen würde? @ erik-r können Sie bitte einen Blick auf die Kommentare von https://stackoverflow.com/questions/43218272/redux-form-fields-component-and-validation. Kannst du bitte deine Gedanken zum Hinzufügen von Validierungen zu 'Fields' posten? – eNddy