এখানে সমস্যাটি রয়েছে: আমি একটি বোতাম ক্লিকে 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
?