Как изменить стейт при условии? React Hooks
Подскажите как изменить состояние хука setTime в данном onChange:
const [ time, setTime ] = useState('');
onChange = event => {
const re = /^[0-9\b]+$/
if (event.target.value === '' || re.test(event.target.value)) {
setTime(this.setState({value: event.target.value}))
}
}
В моем случае он выдает вполне логичную ошибку:
TypeError: Cannot read property 'setState' of undefined
Ответы (1 шт):
Автор решения: Vasily
→ Ссылка
В хуках Вам не требуется писать this перед вызовом dispatcher'a setTime:
const [time, setTime] = useState("")
const onChange = event => {
const value = event.target.value
const regex = /^[0-9\b]+$/
if (value === "" || regex.test(value)) {
setTime(value)
}
}
Так же изначально initialState у Вас равен пустой строке, а впоследствии Вы пытаетесь заменить его на объект с ключом value.