Крюк
export const useCreateAccount = () => {
const [state, setState] = useState(initialState)
const onChangeInput: ChangeEventFunction = useCallback(({ target }) => {
if (!target.files) {
return setState({ ...state, [target.name]: target.value })
}
setState({ ...state, [target.name]: target.files[0] })
}, [])
return { onChangeInput }
}
Компонент
const { onChangeInput } = useCreateAccount()
<form>
<input name="name1" onChange={onChangeInput}>
<input name="name2" onChange={onChangeInput}>
</form>
Каждый раз, когда я делаю некоторые изменения во втором входе (name2), предыдущее состояние (name1) компонента теряется (сбрасывается на начальное состояние), причина, по которой я использую 'useCallback', мне нужен только один экземпляр 'onChangeInput'
Но если я удалю 'useCallback', состояние сохранит предыдущие значения (name1)
Я не могу понять это поведение в хуках, кто-то может подробнее рассказать об этом?