Вы сделали ваше состояние вложенным объектом, и когда вы устанавливаете состояние, вы перезаписываете весь объект. Вам нужно будет либо объединить объект с предыдущим состоянием, либо прекратить использование вложенного объекта. React сделает поверхностное слияние состояний, но не глубокое слияние.
Само слияние выглядело бы так, если бы вы могли использовать синтаксис распространения объекта:
this.setState(oldState => ({
enteredEvent: {
...oldState.enteredEvent,
name: newValue
}
});
Если в вашем распоряжении нет синтаксиса распространения объекта, то же самое можно сделать так:
this.setState(oldState => ({
enteredEvent: Object.assign({}, oldState.enteredEvent, {name: newValue})
});
Если вместо этого вы хотите использовать метод выравнивания состояния, это будет выглядеть так:
this.state = {
name: '',
date: new Date(),
time: '',
place: '',
datepub: new Date()
};
// ...
this.setState({ name: newValue });