react原生功能组件useState未更新



这是我的状态对象。

const [track_record, setTrackRecord] = useState({
id: '1',
name: '',
date: '',
time: '',
start_address: '',
end_address: '',
distance: '0',
duration: '0',
avg_speed: '0',
max_speed: '0',
min_speed: '0',
coordinates: [],
});

这里是我要更新的函数。

setTrackRecord(prev => ({
...prev,
name: `Track ${tracks.length + 1}`,
date: moment().format('DD-MM-YYYY'),
time: moment().format('hh:mm'),
}));

每次控制台都有相同的值。

你可以设置之前的数据,因为它是与track_record和附加其他数据与它的更新值,如下所示:

setTrackRecord({
...track_record,
name: `Track ${tracks.length + 1}`,
date: moment().format('DD-MM-YYYY'),
time: moment().format('hh:mm'),
});

最新更新