小编Gib*_*ish的帖子

React 状态未在 useEffect() 上给出正确的值

我正在尝试使用 React 构建因式分解算法。我想根据因式分解的结果进行results添加LocalStorage。但是,LocalStorage设置的是以前的结果而不是当前的结果。

我认为发生这种情况是因为useEffect在每个新的(=用户输入)上运行[number]而不是基于[results]. 但是,我需要useEffect在新的用户输入提交上运行,因为那时必须触发分解。

localStorage因式分解完成后(finally如果可能的话,在块上)如何才能得到正确的结果?

const [results, setResults] = useState({
  default: [],
  detailed: [],
  isPrime: '',
});

const { number } = props

useEffect(() => {
  handleWorker(number);
  //accessing results here will give previous results
}, [number]);

const handleWorker = number => {
  try {
    const worker = new Worker(new URL('facto.js', import.meta.url));
    worker.postMessage({ number, algorithm });
    worker.onmessage = ({ data: { facto …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-hooks use-effect use-state

6
推荐指数
1
解决办法
781
查看次数

标签 统计

javascript ×1

react-hooks ×1

reactjs ×1

use-effect ×1

use-state ×1