Клонирование события-цели для использования в setState-call
Я хочу упростить обработку контролируемых входных данных в моем проекте (написано с использованием TypeScript)
, В настоящее время у меня есть одна функция, которая будет делать это:
private handleChange = (ev: React.ChangeEvent<HTMLInputElement>): void => {
const target = ev.target;
return this.setState((prevState) => ({ ...FormHelper.setObjectValue(target, prevState) }));
}
тогда как FormHelper.setObjectValue
Функция определяется следующим образом:
export const setObjectValue = <TObject>(htmlElement: HTMLInputElement | HTMLSelectElement, obj: TObject): TObject => {
const inputName = htmlElement.name;
const newValue = htmlElement.value;
setPathValue(obj, inputName, newValue); // done via third-party package "pathVal"
return obj;
}
Тем не менее, с точки зрения событийного характера ReactJs
данные события (особенно target
) является нулевым, когда вызывается в setObjectValue
вызов.
Моя цель состоит в том, чтобы первая часть была однострочной, которую я затем могу установить прямо на входе, например
<input type="text" name="someName" value={ev => this.setState(prevState => ({...FormHelper.setObjectValue(/*here i need the clone...*/, prevState)})} />
Я уже пробовала IIFE
в качестве первого параметра для передачи, например ((event:React.ChangeEvent<HTMLInputElement>) => event.target)(ev)
но цель все еще null
,
Поэтому мне как-то нужна копия / клон исходной цели события, но я не понимаю, как этого можно достичь.