前提・実現したいこと
Reactのstate管理についてですが、jsonを書き換えてsetした値が更新されているにもかかわらず再描画されません。値の表示は変更前のままになっています。
何か改善策はあるでしょうか。
発生している問題・エラーメッセージ
state変更後、再描画されない
該当のソースコード
const [selectedTime, setSelectedTime] = React.useState({ "1": { start: new Date(), end: new Date(), }, "2": { start: new Date(), end: new Date(), }, "3": { start: new Date(), end: new Date(), }, }); return( ... {Object.keys(selectedTime).map((key) => { let obj = selectedTime; const handleStartTimeChange = (date) => { obj[key].start = date; setSelectedTime(obj); console.log(selectedTime); //selectedTimeの値が更新されていることは確認 }; const handleEndTimeChange = (date) => { obj[key].end = date; setSelectedTime(obj); }; return ( <MuiPickersUtilsProvider utils={DateFnsUtils}> <Grid container justify="space-around"> <KeyboardTimePicker margin="normal" id="start" label="Start Time" value={selectedTime[key].start} onChange={handleStartTimeChange} KeyboardButtonProps={{ "aria-label": "change time", }} /> <KeyboardTimePicker margin="normal" id="end" label="End Time" value={selectedTime[key].end} onChange={handleEndTimeChange} KeyboardButtonProps={{ "aria-label": "change time", }} /> </Grid> </MuiPickersUtilsProvider> ); })}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/07 13:40
2020/06/07 14:02
2020/06/09 01:52
2020/06/09 07:26