Я пытаюсь изменить состояние времени открытия / закрытия (а затем отправить в конечную точку) в течение нескольких дней, которые возвращаются мне в объекте, например, так:
![enter image description here](https://i.stack.imgur.com/NjeIa.png)
Я отобразил их в компоненте React:
{this.state.time.map(each => (
<Fragment key={each.code}>
<OpeningHours
code={each.code}
day={each.description}
name={each.code}
open={each.open !== null ? each.open : '00:00'}
close={each.close !== null ? each.close : '00:00'}
onChange={this.onTimeChange}
/>
</Fragment>
))}
![enter image description here](https://i.stack.imgur.com/ftmRY.png)
Пользователь установит это время вручнуюредактирование ввода времени.Как получить this
открытое или закрытое свойство редактируемого дня, а затем сохранить его в состоянии time
?До сих пор я пробовал это, и это работает, но только если было только время открытия или одно поле в целом.Проблема возникает, так как у меня есть 2 поля для редактирования:
onTimeChange(e) {
let times = this.state.time.slice();
for(let i in time){
if(times [i].name == event.target.name){
times [i].value = event.target.value;
this.setState ({time});
break;
}
}
}
РЕДАКТИРОВАТЬ: компонент OpeningHours
const OpeningHours = props => (
<div className={styles.block}>
<label htmlFor={props.code} className={styles.label}>{props.day}</label>
<div className={styles.container}>
<input
type="time"
name={props.name}
value={props.open !== null ? props.open : '00:00'}
onChange={props.onChange}
className={styles.timefield}
/>
<input
type="time"
name={props.name}
value={props.close !== null ? props.close : '00:00'}
onChange={props.onChange}
className={styles.timefield}
/>
</div>
</div>
);