Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

158
Views
¿Cómo establecer el valor del campo de formulario en función de otro campo de formulario usando reaccionar, mecanografiado y formik?

Quiero establecer el valor del interruptor de palanca en función de otro campo de formulario que el usuario haya establecido usando reaccionar, mecanografiado y formik.

¿Qué estoy tratando de hacer? el código es como a continuación

en el archivo de constantes

 export const OPTION_KEY = 'option'; export const SWITCH_KEY = 'switch'; export const initialValues: SomeValues = { [OPTION_KEY] = '', [SWITCH_KEY] = '', };

en otro archivo

 import {OPTION_KEY, SWITCH_KEY} from 'constants'; const options: SelectOption[] = [ { value: 'option1', label: 'option1' }, { value: 'option2', label: 'option2' }, { value: 'option3', label: 'option3' }, ]; const FirstStep = ({formikBag} : formikBag: FormikProps<SomeValues>;}) => { return( <FormField label="Option" fieldId={OPTION_KEY}> {({field, form}: FieldProps) => ( <Select id={field.name} inputId={field.name} onChange={(option: SelectOption) => form.setFieldValue(field.name, option.value) } options={options} placeholder={options[0].label} value={options.filter(option=> option.value === field.value)} /> </FormField> <FormField label="switch" fieldId={SWITCH_KEY}> {({ field, form }: FieldProps) => ( <Switch id={'switch'} {...field} checked={isSwitchToggled} onChange={() => { form.setFieldValue(SWITCH_KEY,''); } }} /> )} </FormField> )};

Ahora, lo que quiero hacer es que, cuando el usuario seleccione la opción 1 o la opción 2 en el menú de selección (es decir, OPTION_KEY), entonces, de manera predeterminada, quiero que SWITCH_KEY esté apagado. si el usuario selecciona la opción 3, entonces, por defecto, SWITCH_KEY debe estar activado.

ahora el usuario también puede activar o desactivar SWITCH_KEY aunque la opción seleccionada por el usuario sea la opción 1, la opción 2 o la opción 3.

¿Cómo puedo modificar el código anterior? ¿Cómo debo configurar el estado SWITCH_KEY en función de la opción seleccionada por el usuario y luego, si el usuario lo cambia, cómo puedo activar o desactivar SWITCH_KEY? Podría alguien ayudarme con esto.

Soy nuevo en el uso de formik y reacciono. Gracias.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Mantenga el estado de su interruptor en algún lugar del estado del componente, por ejemplo. isSwitchToggled (no sé qué está haciendo esta variable suya isSwitchToggled , pero seguro que parece una variable de estado) y simplemente modifique esa variable de estado según la opción elegida. Luego, renderice su interruptor en consecuencia:

 const FirstStep = ({formikBag} : formikBag: FormikProps<SomeValues>;}) => { const [isSwitchToggled, setSwitchToggled] = React.useState(false); const setSwitch = (fieldName, fieldValue) => { if (fieldName === 'name' && fieldValue === 'John') { setSwitchToggled(true); } else setSwitchToggled(false); } return( <FormField label="Option" fieldId={OPTION_KEY}> {({field, form}: FieldProps) => ( <Select id={field.name} inputId={field.name} onChange={(option: SelectOption) => form.setFieldValue(field.name, option.value) setSwitch(field.name, option.value) } options={options} placeholder={options[0].label} value={options.filter(option=> option.value === field.value)} /> </FormField> <FormField label="switch" fieldId={SWITCH_KEY}> {({ field, form }: FieldProps) => ( <Switch id={'switch'} {...field} checked={isSwitchToggled} onChange={() => { form.setFieldValue(SWITCH_KEY,''); } }} /> )} </FormField> )};
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!