useState钩子的setter不正确地覆盖了state状态。
- 论坛
- useState钩子的setter不正确地覆盖了state状态。
12 浏览
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;