компонента
const handleStationChange = (data: any) => {
if (!data) {
clearStation();
return;
}
const {
id,
name
} = data;
updateData({
stationId: id,
station: name,
});
};
потом этот обработчик передается в дочерний компонент
<StationDropDownBox
id="stationId"
name="stationId"
value={stationId}
isReadOnly={isReadOnly}
handleChange={handleStationChange}
validator={requiredValidator}
disabled={agentHasOnlyOneStation}
/>
чтобы функция-обработчик каждый раз не пересоздавалась заново, оборачиваю её в useCallback
const handleStationChange = useCallback((data: any) => {
if (!data) {
clearStation();
return;
}
const {
id,
name
} = data;
updateData({
stationId: id,
station: name,
});
}, []);
это вообще правильный подход к решению этой проблемы или нужно что-то другое использовать?
к решению какой проблемы? как раз проблему ты не озвучила
что бы колбек имел смысл, нужно тот компонент, куда он передается, обернуть в React.memo
Обсуждают сегодня