导航栏: 首页 评论列表

React 执行两次的问题

默认分类 2023/11/28 22:43

React 执行两次的问题?

代码如下:

  const [isOk, setIsOk] = useState<any>(false);

  const flag = useRef(false);

  if (!flag.current) {
    console.log('flag.current 111: ', flag.current);
    flag.current = true;
    console.log('flag.current 222: ', flag.current);
  }

  if (!isOk) {
    console.log('===> isOk: ', isOk);
    setIsOk(true);
  }

解决方案:

方案一:去掉 <React.StrictMode>

<React.StrictMode>
  <App />,
</React.StrictMode>,

方案二:useEffect(() => {})

const [isOk, setIsOk] = useState<any>(false);
const flag = useRef(false);

useEffect(() => {
  if (!flag.current) {
    console.log('flag.current 111: ', flag.current);
    flag.current = true;
    console.log('flag.current 222: ', flag.current);
  }

  if (!isOk) {
    console.log('===> isOk: ', isOk);
    setIsOk(true);
  }
}, []);


>> 留言评论