यहाँ समस्या है: मैं एक बटन क्लिक पर 2 फ़ंक्शन कॉल करने का प्रयास कर रहा हूं। दोनों फ़ंक्शन राज्य को अपडेट करते हैं (मैं उपयोग कर रहा हूं हुक)। पहला फ़ंक्शन वैल्यू 1 को 'नया 1' के लिए सही ढंग से अपडेट करता है, लेकिन 1 एस (सेटटाइमआउट) के बाद दूसरा फ़ंक्शन फायर करता है, और यह मान 2 से 'नया 2' में बदल जाता है! इसने मान 1 को '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 (
<>
<button
onClick={() => {
changeValue1();
setTimeout(changeValue2, 1000);
}}
>
CHANGE BOTH
</button>
<h1>{state.value1}</h1>
<h1>{state.value2}</h1>
</>
);
};
export default Test;
useState
या इसके बजाय उपयोग करें useReducer
।
const [state, ...]
, और फिर सेटर में इसका जिक्र करते हुए ... यह हर समय एक ही राज्य का उपयोग करेगा।
useState
कॉल का उपयोग करें , प्रत्येक "चर" के लिए।
changeValue2
?