Đây là vấn đề: Tôi đang cố gắng gọi 2 chức năng trên một nút bấm. Cả hai chức năng đều cập nhật trạng thái (Tôi đang sử dụng hook useState). Hàm đầu tiên cập nhật giá trị1 chính xác thành 'new 1', nhưng sau 1 giây (setTimeout), hàm thứ hai sẽ kích hoạt và nó thay đổi giá trị 2 thành 'new 2' NHƯNG! Nó đặt giá trị1 trở lại '1'. Tại sao chuyện này đang xảy ra? Cảm ơn trước!
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 (
<>
<button
onClick={() => {
changeValue1();
setTimeout(changeValue2, 1000);
}}
>
CHANGE BOTH
</button>
<h1>{state.value1}</h1>
<h1>{state.value2}</h1>
</>
);
};
export default Test;
useState
hoặc thay vào đó sử dụng useReducer
.
const [state, ...]
, và sau đó đề cập đến nó trong setter ... Nó sẽ sử dụng cùng một trạng thái mọi lúc.
useState
cuộc gọi riêng biệt , một cuộc gọi cho mỗi "biến".
changeValue2
?