生活

最近半年的记录

Updated
2 min read

不知道为什么,我放弃了吃药,上次看病,大夫给我预约了5月6号的复诊,也不准备去了。不知道是不是一种自暴自弃,因为前几天,右边的后腰,又开始有规律的疼痛,还以为是肾结石又复发了,焦虑的情绪已经爆棚,于是停药了。

💊

安定医院 - 特需的号 - 态度真的很好

在事件回调函数内,多次调用useState的updater函数,也只会引起组件的一次rerender(重新渲染),下方的代码里,点击按钮,只会在控制台里输出一次“组件被渲染”

jsx
const App = () => {
  const [count, setCount] = useState(0);
  
  console.log('组件被渲染')
  
  const handleClick = () => {
    setCount(1);
    setCount(2);
    setCount(3);
  }
  
  return (
  	<>
      <h1>{count}</h1>
      <button onClick={handleClick}>increase</button>
    </>
  );
}

在useState的updater函数调用后,无法在下方代码,获取到最新的state值,说明操作是异步的。但是神奇的是,在下方可以通过传递给updater函数一个“函数参数”,可以获取到最新的state值,类似于:

jsx
const hanldeClick = () => {
  setCount(1);
  console.log('此处的count值不是1');
  setCount((prev) => console.log('此处的count值是1'))
}