तो मेरे पास निम्न कोड में डेटा के रूप में लेबल किए गए पृष्ठभूमि यूआरएल को वापस लाने वाला एक भ्रूण() कॉल है। यूआरएल एक उपयोगकर्ता द्वारा अपलोड की गई छवि है और अपलोड की गई छवि के लिए मेरे बैकएंड पर कॉल करता है।

await fetch(URL3)
  .then(response => response.json())
  .then(data => {
    this.setState({
      userBackground: data,
      loading: false
    });
  });

एक jpeg फ़ाइल (37 kb) के साथ यह कॉल करने के बाद यह मेरे द्वारा अपलोड की गई पहली jpeg फ़ाइल को छोड़कर कोई अन्य फ़ाइल नहीं दिखाएगा। मैंने अलग-अलग आकार की पीएनजी और जेपीईजी फाइलों की कोशिश की है।

क्या एंड्रॉइड पर कुछ प्रकार का इमेज कैश है जिसे सक्रिय किया जा रहा है और दूसरी छवि को डाउनलोड करने की अनुमति नहीं दे रहा है ????

मेरा इमेजबैकग्राउंड टैग इस प्रकार है:

<ImageBackground
    source={this.state.userBackground === null ? this.state.background : { uri: `${uri}` }}
    style={{ width: '100%', height: '100%' }}
  >
0
James Brett 31 अक्टूबर 2018, 19:35

1 उत्तर

सबसे बढ़िया उत्तर

रिएक्ट नेटिव आंतरिक रूप से इमेज कैशिंग करता है, इससे छुटकारा पाने के लिए आप टाइम स्टैम्प के साथ इमेज यूआरएल को जोड़ सकते हैं। उदाहरण के लिए,

let imageUrl = `${this.state.userBackground}?time=`+new Date(); 
<ImageBackground
source={imageUrl}
style={{ width: '100%', height: '100%' }}
>
1
Taslim 31 अक्टूबर 2018, 19:51