SyntheticEvent объединяется. Это означает, что объект SyntheticEvent будет повторно использован и все свойства будут аннулированы после вызова обратного вызова события. Это из соображений производительности. Таким образом, вы не можете получить доступ к событию асинхронным способом.
Более подробную информацию можно найти здесь .
Поскольку setState
является асинхронным, event
будет null
к тому времени, как оно будет оценено в setState
.
Вместо этого деконструируйте event
до setState
:
change = ({ target: { name, value } }) => {
this.setState({
[name]: value,
});
}
или
change = e => {
const { name, value } = e.target;
this.setState({
[name]: value,
});
}