Я создал родительский компонент, который имеет несколько дочерних компонентов. Каждый из этих дочерних компонентов имеет данные, которые передаются родительскому компоненту, который отправляет эти данные в вызов API. Структура выглядит следующим образом:
const ParentComponent = () => {
const [child1input, setChild1Input] = useState("");
const [child2input, setChild2Input] = useState("");
const [child3input, setChild3Input] = useState("");
const [child4input, setChild4Input] = useState("");
const submitData = async () => {
const payload = {
input1: child1input,
input2: child2input,
input3: child3input,
input4: child4input
};
await axios.post('route', {...payload});
}
return (
<Fragment>
<Child1 input={child1input} setInput={setChild1Input} />
<Child2 input={child2input} setInput={setChild2Input} />
<Child3 input={child3input} setInput={setChild3Input} />
<Child4 input={child4input} setInput={setChild4Input} />
<Button onClick={submitData}>Submit</Button>
</Fragment>
);
};
Теперь, очевидно, каждый раз, когда каждый компонент обновляет состояние родителя (каждое нажатие клавиши для полей ввода), он обновляет родительский компонент и, следовательно, каждый дочерний компонент. Это оказывает ОГРОМНОЕ влияние на производительность и приводит к тому, что поведение текстового поля становится очень медленным.
Я хотел бы знать, как бы я обработал изменение ввода из одного текстового поля в каком-либо дочернем компоненте, не вызывая повторную визуализацию все