useState钩子的setter不正确地覆盖了state状态。

12 浏览
0 Comments

useState钩子的setter不正确地覆盖了state状态。

问题在于:我试图在按钮点击时调用两个函数。两个函数都会更新状态(我使用了useState hook)。第一个函数正确地将value1更新为'new 1',但是在1秒后(setTimeout),第二个函数触发,并将value2更改为'new 2'。但是!它将value1重新设置为'1'。为什么会发生这种情况呢?

谢谢提前!

import React, { useState } from "react";
const Test = () => {
  const [state, setState] = useState({
    value1: "1",
    value2: "2"
  });
  const changeValue1 = () => {
    setState({ ...state, value1: "new 1" });
  };
  const changeValue2 = () => {
    setState({ ...state, value2: "new 2" });
  };
  return (
    <>
      
      

{state.value1}

{state.value2}

); }; export default Test;

0