#javascript #reactjs #object
Вопрос:
У меня есть структура, подобная следующей:
{
firstname: '',
company: {id: '', name: ''},
nextAction: { by: '',
type: {id: '', name: ''}
}
}
И следующие функции для обновления параметров ‘:
const handleInputValue = (e: ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>) => {
const { name, value } = e.target;
if (name === 'firstName') {
setValues({
...values,
[name]: value,
});
validate({ [name]: value });
} else if (name === 'company') {
setValues({
...values,
[name]: { name: name, id: value },
});
validate({ [name]: value });
} else if (name === 'nextAction') {
setValues({
...values,
nextAction: { ...nextAction, value: { name: name, id: value } },
});
validate({ [name]: value });
}
Это работает для обновления «имени» и «компании», и я хочу обновить только » тип » для «следующего действия» и сохранить начальное значение для «by», но я думаю, что синтаксис неверен. Есть какие-нибудь идеи?
Спасибо!
Ответ №1:
else if (name === 'nextAction') { setValues({ ...values, nextAction: { ...values.nextAction, value: { name: name, id: value } }, }); validate({ [name]: value }); }
Вы можете распределить значения с помощью ...values.nextAction
Комментарии:
1. Твое здоровье, приятель! Это сработало.