В useMemo можно запихнуть первые две зависимости, возвращать результат для третьей и там же реагировать на это событие
Сделать три поля отдельным компонентом и внутри уже разруливать. А в компонент модель прокинуть коллбэк, если эти значения снаружи нужны
Так третий рид онли вычисляемый или его можно менять? тогда как первые два должны на это реагировать?
readOnly вычисляемый - вы правы
Тогда я не понимаю условия задачи
Любой из первых двух инпутов изменяем - третий меняется автоматом, onChange не срабатывает на нём Вычисление первых двух подставляю в value третьего инпута
Нужен код, так не понятно
const [alertState, setAlertState] = useState(false); const onChange = (e) => { if (e.target.value < 0) setAlertState(true) } <> <StyledTableCell align="center"> <TextField inputRef={register({ required: true })} inputProps={{ min: 0 }} type="number" error={error} variant="outlined" /> </StyledTableCell> <StyledTableCell align="center"> <TextField inputRef={register({ required: true })} inputProps={{ min: 0 }} type="number" error={error2} variant="outlined" /> </StyledTableCell> <StyledTableCell align="center"> <TextField inputRef={register({ required: true })} inputProps={{ readOnly: true }} type="number" onChange={onChange} value={fields[row.meta_label_id].plan - fields[row.meta_label_id].fact} /> </StyledTableCell> </>;
react-hook-form имеет метод watch, если это он
const fields = watch();
я хз братан, ты инфу обрывками вкидываешь без целостной картины
Очевидно отслеживать чейнджи первых двух, раз 3 производный
Закинул fields в useEffect - мне нужно чтоб 1 раз срабатывал... а тут дискотека появляется при одном изменении
если тебе надо чтоб один раз срабатывал - нужно массив зависимостей оставлять пустым
По 1 разу при каждом изменении fields
А это он без прерывно меняется (до 5000 раз дошло) - хотя изменил 1 раз
Нельзя хуки вкладывать в условия if..., Хуки вызываются при каждом рендере.
а где у него хука в условии?
const [alertState, setAlertState] = useState(false); const onChange = (e) => { if (e.target.value < 0) setAlertState(true)...
А что это?
это функция, которую возвращает хук
Это диспатч стейта
setAlertState же? Функция которую вернул хук
При вложении хоуков не в компоненты - приложение падает. А у меня 10к+ рендеров происходит
Обсуждают сегодня