web-dev-qa-db-fra.com

Comment définir des champs cachés sous la forme redux dans réagit natif?

Comment définir des champs cachés sous la forme redux dans réagit natif

je ne peux tout simplement pas trouver le moyen de le faire. de l'aide?

8
Roy CL

j'ai fini par utiliser ceci:

this.props.dispatch(change("FORM_NAME","FIELD_NAME","VALUE")) 

après l'exécution de ce code, le formulaire créera le champ s'il n'existe pas 

8
Roy CL

J'ai été confronté au même problème… .. Ce que je fais est de déclarer un champ comme celui-ci et de régler la hauteur à 0… .. C'est un peu hacky mais cela fonctionne dans mon cas.

<Field
    component={TextInput}
    name="departure_city_name"
    type="hidden"
    style={{ height: 0 }}
/>

Et je change la valeur comme ceci: this.props.change("departure_city_name", cityData.name);

J'espère que ça aide.

4
rmkpatchaa

vous n'avez pas besoin d'envoyer une action, il vous suffit d'effectuer cette modification chaque fois que vous avez besoin d'un champ caché sous la forme redux.

this.props.change('Field_name', value)

1
Sumit Kumar

Tecniquement, vous n’avez pas besoin de créer un champ type = hidden car vous pouvez appeler la fonction change à partir de vos accessoires de formulaire encapsulés sous Redux. vous voulez définir des valeurs par défaut ou vous assurer que le champ existe toujours; vous devrez donc configurer les valeurs par défaut:

InitializeFromStateForm = reduxForm({
  form: 'myForm'
})(InitializeFromStateForm)

InitializeFromStateForm = connect(
  state => ({
    initialValues: { areYouOk: 'no' }
  })
)(InitializeFromStateForm)

export default InitializeFromStateForm

Que vous ayez défini les valeurs initiales ou non, vous pourrez toujours appeler la fonction de modification avec votre nouvelle valeur cachée et cela fonctionnera quand même.

  let InitializeFromStateForm = ({ submitHandler, change }) => {
    return (
      <form onSubmit={submitHandler}>
        <button
         onClick={() => {
           change('areYouOk', 'yes');
         }}
         label={'Yes'}
        />
      </form>
    );
  }
0
gsalgadotoledo