How to pass the value of input to component state on onChange method using formik

Viewed 70

I have a helper for formik using it I manage my state on the form my problem is how can I change component state on onChange method I tried something like below but it doesnt work out !!! anyone can help me.. Whenever user trigger onChange method I want to take the value of it and request to api by this value and add new select on the form... Thank you so much

** custom formik lib
const MaterialUISelectField = ({
    errorString,
    label,
    children,
    value,
    name,
    onChange,
    onBlur,
    required,
}) => {
    return (
        <FormControl fullWidth>
            <InputLabel required={required}>{label}</InputLabel>
            <Select
                name={name}
                onChange={onChange}
                onBlur={onBlur}
                value={value}
            >
                {children}
            </Select>
            <FormHelperText error={true}> {errorString}</FormHelperText>
        </FormControl>
    );
};

const FormikSelect = ({ name, items, label, required = false, error }) => {
    return (
        <div className="FormikSelect">
            <Field
                name={name}
                as={MaterialUISelectField}
                label={label}
                errorString={error ? error : <ErrorMessage name={name} />}
                required={required}
            >
                <MenuItem disabled value="">
                    <em>{label} Seçiniz</em>
                </MenuItem>
                {items != null && items.map(item => (
                    <MenuItem key={item.Id} value={item.Id}>
                        {item.Ad}
                    </MenuItem>
                ))}
            </Field>
        </div>
    );
};

** component where I use the custom formik lib
const [state, setState] = React.useState('');

<FormikSelect
     name="aa"
     label="aa"
     items={data}
     onChange={(e) => setState(e.target.value)} />
0 Answers
Related