प्रतिक्रिया उपयोग स्टेट स्टेट्स का उपयोग करते समय मुझे एक समस्या है, समस्या यह है कि मैं चाहता हूं कि राज्य हर बार अपडेट करे जब मेरा एपीआई इसका मूल्य बदलता है, लेकिन जब घटक लोड होता है तो राज्य बदल जाता है, यहां उस हिस्से का कोड है जिसे मैं ' मुझे परेशानी हो रही है:
const [partida,setPartida] = useState();
const getNumero = ()=>{
axios.get(`https://carta-rusa.herokuapp.com/routes/find/${localStorage.getItem('partidaId')}`)
.then(res=>{
setPartida(res.data.partida.jugadores.length)
})
.catch(err=>console.log(err));
}
useEffect(()=>{getNumero();},[])
2
Jonathan7
19 फरवरी 2021, 18:10
1 उत्तर
सबसे बढ़िया उत्तर
अगर /routes/find/
पर समापन बिंदु अलग-अलग समय पर अलग-अलग डेटा देता है, तो आपके पास 2 मुख्य विकल्प हैं:
- लागू करने में सबसे आसान, लेकिन बहुत सुंदर नहीं: मतदान। उस समापन बिंदु के लिए समय-समय पर अनुरोध करें, जैसे हर 5 मिनट या हर 30 सेकंड या कुछ और।
useEffect(() => {
const get = () => {
axios.get(`https://carta-rusa.herokuapp.com/routes/find/${localStorage.getItem('partidaId')}`)
.then(res => {
setPartida(res.data.partida.jugadores.length)
})
.catch(err => console.log(err));
};
get();
const intervalId = setInterval(get, 30000);
return () => clearInterval(intervalId);
}, []);
- अधिक सुरुचिपूर्ण समाधान: इसके बजाय सर्वर को अद्यतन मान भेजें। जब घटक माउंट हो जाता है, तो सर्वर के साथ WebSocket कनेक्शन स्थापित करें , और जब भी सर्वर बदलता है तो सर्वर नया डेटा भेजता है। क्लाइंट पर, सॉकेट संदेशों को सुनें, और जब कोई संदेश दिखाई दे, तो आवश्यकतानुसार स्थिति अपडेट करें।
0
CertainPerformance
19 फरवरी 2021, 18:16
संबंधित सवाल
नए सवाल
reactjs
प्रतिक्रिया उपयोगकर्ता इंटरफ़ेस के निर्माण के लिए एक जावास्क्रिप्ट पुस्तकालय है। यह एक घोषणात्मक, घटक-आधारित प्रतिमान का उपयोग करता है और इसका उद्देश्य कुशल और लचीला दोनों है।