tengo un estado asi
const [data,setData] = useState({ city: "", address: "", zipCode: "", phoneNum: "", commission: [{ commissionFor: "Invocing", commissionPercentage: "40" }],y tengo un formulario dinámico que aparecerá si el usuario hace clic en el botón ```Agregar``
<Form onFinish={onFinish}> <Form.List name="commision"> {(fields, { add, remove }, { errors }) => ( <> {fields.map((name, index) => ( <Row key={index}> <Autocomplete onChange={(e, value) => setData((data) => ({ ...data, [`${dataName}${index + 1}`]: e.target.value, })) } /> <FormControl> <InputLabel>Percentage</InputLabel> <OutlinedInput value={data[`${dataValue}${index + 1}`] || ""} onChange={(e) => setData((data) => ({ ...data, [`${dataValue}${index + 1}`]: e.target.value, })) } startAdornment={ <InputAdornment position="start"> {insideIcon} </InputAdornment> } label="Percentage" /> </FormControl> </Row> ))} <Form.Item> quiero que cuando el usuario complete la información, mi objeto de commission cambie así
commission: [{ commissionFor: "Invocing", commissionPercentage: "40" },{ commissionFor: "This is new Input", commissionPercentage: "80" }],Cómo puedo conseguir esto ? agradeceré algo de ayuda
Puedes hacerlo como una función.
ponlo en cambio en cada entrada
onChange={handleChange}Crear esta función
const handleChange = (event) => { setData({ ...data, commission: {...data.comission, [`${dataValue}${index + 1}`] : event.currentTarget.value} }) }