में डिस्पैच मैं एक प्रोफ़ाइल घटक है कि प्रतिक्रिया-रूटर द्वारा लोड किया जाता है है इस (redux-api-मिडल वेयर) की तरह दिखता है: उपयोगकर्ता नाम और लोड करने के लिए है कि उपयोगकर्ताओं को प्रोफ़ाइल जानकारी:अनंत लूप जब componentWillReceiveProps
function fetchUser(id) {
let token = localStorage.getItem('jwt');
return {
[CALL_API]: {
endpoint: `http://localhost:3000/api/users/${id}`,
method: 'GET',
headers: { 'x-access-token': token },
types: [FETCH_USER_REQUEST, FETCH_USER_SUCCESS, FETCH_USER_FAILURE]
}
}
}
कारण मैं componentWillReceiveProps समारोह जोड़ा जब दूसरे के लिए URL परिवर्तन प्रतिक्रिया करने के लिए है। पहली नज़र में सबकुछ काम करता प्रतीत होता है लेकिन फिर मैंने देखा कि उस घटक को डिबग करने के दौरान WillReceiveProps फ़ंक्शन को अनंत लूप में बुलाया जाता है और मुझे नहीं पता कि क्यों। यदि मैं घटक WillReceiveProps को हटा देता हूं तो प्रोफ़ाइल को नए उपयोगकर्ता नाम से अपडेट नहीं किया जाता है लेकिन फिर मेरे पास कोई लूप समस्या नहीं है। कोई विचार?
अब मैं समझ तुलना कर सकते हैं। FETCH_USER_SUCCESS के लिए Reducer कुछ उपयोगकर्ता डेटा संग्रहीत करता है जो मेरा प्रोफाइल घटक कनेक्ट हो रहा था (जो मैं प्रश्न लिखते समय उपरोक्त मेरे कोड में जोड़ना भूल गया था)। तो प्रवाह घटक था WillReceiveProps -> प्रेषक -> reducer अद्यतन डेटा जो प्रोफाइल - - घटकWillReceiveProps को फिर से बुलाया जाता है और यह सब खत्म हो जाता है। मुझे लगता है कि इस लूप से बचने के लिए मुझे कहीं और रूट परिवर्तनों के लिए कोड को स्थानांतरित करने की आवश्यकता होगी। धन्यवाद! – hazmah0