Inilah masalahnya: Saya mencoba memanggil 2 fungsi dengan mengklik tombol. Kedua fungsi memperbarui status (Saya menggunakan hook useState). Fungsi pertama memperbarui value1 dengan benar ke 'baru 1', tetapi setelah fungsi 1s (setTimeout) kedua diaktifkan, dan ia mengubah nilai 2 menjadi 'baru 2' TETAPI! Ini mengatur value1 kembali ke '1'. Mengapa ini terjadi? Terima kasih sebelumnya!
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
atau digunakan useReducer
.
const [state, ...]
, dan kemudian merujuknya di setter ... Ini akan menggunakan status yang sama sepanjang waktu.
useState
panggilan terpisah , satu untuk setiap "variabel".
changeValue2
?