步骤进度加载状态怎么同步更新?
我在做一个多步骤表单,每完成一步就调用接口保存数据,但进度条的状态老是跟不上实际步骤。比如我已经走到第三步了,进度条还停在第二步,明明 state 里 step 已经是 3 了。
我试过在 useEffect 里监听 step 变化然后手动触发进度组件的更新,但没效果。是不是哪里 setState 的时机不对?
const [step, setStep] = useState(1);
const handleNext = async () => {
await saveStepData(step, formData);
setStep(prev => prev + 1); // 这里更新了,但进度条没反应
};
建议直接用 step 值控制进度条,而不是依赖 useEffect 监听。把进度条和 step 状态直接绑定起来:
另外记得在 handleNext 里确保 saveStepData 返回后再更新状态。要是接口耗时长,可以考虑加个 loading 态来避免视觉不同步。
别忘了检查下你的 CSS 过渡效果,有时候动画延时也会造成这种错觉。我之前就踩过这坑,浪费了不少时间调试。