Я хочу, чтобы массив дней обновлялся до того же времени начала и окончания и обновлял его как переменную состояния. Когда я сопоставляю массив дней с формой переменной состояния обновления. При проверке логов консоли. либо обновляется только время начала, либо время окончания, либо обновляется только 1 день в переменной состояния
const daystime={
sunday: {
start: "3000",
end: "3000",
},
monday: {
start: "3000",
end: "3000",
},
tuesday: {
start: "3000",
end: "3000",
},
wednesday: {
start: "3000",
end: "3000",
},
thursday: {
start: "3000",
end: "3000",
},
friday: {
start: "3000",
end: "3000",
},
saturday: {
start: "3000",
end: "3000",
},
}
const [form, setForm] = React.useState(daystime);
const [singleStartTime, setSingleStartTime] = React.useState(new Date());
const [singleEndTime, setSingleEndTime] = React.useState(new Date());
useEffect(() => {
if(value==='Same Timing'){
let starttime='3000'
let endtime='3000'
if (singleStartTime._d) {
if(singleStartTime._d.getMinutes().toString().length<2)
starttime = singleStartTime._d.getHours().toString() +'0'+singleStartTime._d.getMinutes().toString();
else
starttime =singleStartTime._d.getHours().toString() +singleStartTime._d.getMinutes().toString();
days.map((day) => {
pass(day.title, "start", starttime);
return "";
});
}
if (singleEndTime._d) {
if(singleEndTime._d.getMinutes().toString().length<2)
endtime = singleEndTime._d.getHours().toString() +'0'+singleEndTime._d.getMinutes().toString();
else
endtime =singleEndTime._d.getHours().toString() +singleEndTime._d.getMinutes().toString();
days.map((day) => {
pass(day.title, "end", endtime);
return "";
});
}}
}, [singleStartTime, singleEndTime, days]);
const pass = (day, side, time) => {
setForm({
...form,
[`${day}`]: { ...form[`${day}`], [`${side}`]: time },
});
};