arco-design / arco-design-mobile

React mobile UI components library based on Arco Design
https://arco.design/mobile/react/arco-design/pc/#/
MIT License
397 stars 76 forks source link

Progress 内部数据 settimeout 无法同步更新 #104

Closed asurance closed 1 year ago

asurance commented 1 year ago

Basic Info

What is expected?

进度条上数据和按钮上数据一致

Steps to reproduce

点击按钮,等待进度刷新

ChelesteWang commented 1 year ago

可以尝试颠倒 setLoading 和 setPercent 以暂时达成你的目标

const { React, Arco, ArcoIcon } = window;
const { Progress,Button } = Arco;
import {useEffect,useState} from "react";

 function ProgressDemo() {
   const [percent,setPercent] = React.useState(50);
   const [loading,setLoading] = React.useState(false);
    return (
      <div>
        {loading?'loading':<Progress percentage={percent}/>}
        <Button onClick={()=>{
          setLoading(true)
          setTimeout(()=>{
             setPercent(Math.random()*100);
             setLoading(false);
          },1000)
        }}>{percent}</Button>
      </div>
    );
}
ReactDOM.render(<ProgressDemo/>, mountNode);