相关疑难解决方法(0)

在使用挂钩时,React是否批量状态更新功能?

对于类组件,this.setState如果在事件处理程序内部则调用批处理.但是如果在事件处理程序之外更新状态并使用'useState'钩子会发生什么?

function Component() {
  const [a, setA] = useState('a');
  const [b, setB] = useState('b');

  function handleClick() {
    Promise.resolve().then(() => {
      setA('aa');
      setB('bb');
    });
  }

  return <button onClick={handleClick}>{a}-{b}</button>
}
Run Code Online (Sandbox Code Playgroud)

它会useState马上渲染吗?或者它会是aa - bb然后aa - b呢?

reactjs react-hooks

28
推荐指数
4
解决办法
4663
查看次数

React useState 导致双重渲染

考虑规范useState示例:

import React, { useState } from 'react';

const MyComponent = () => {
  const [count, setCount] = useState(0);
  console.log(count);
  return (
    <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center' }}>
      count: {count}
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
};

export default MyComponent;
Run Code Online (Sandbox Code Playgroud)

单击该按钮可使每个状态打印两次。这是为什么?

短屏幕

reactjs react-hooks

8
推荐指数
1
解决办法
2886
查看次数

标签 统计

react-hooks ×2

reactjs ×2