Skip to content

Commit 04104f7

Browse files
authored
Merge pull request #10 from johandui/master
Strange error fixed
2 parents af1ad2f + 8a78df9 commit 04104f7

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# react-native-image-cache-wrapper
1+
# react-native-image-cache-wrapper - Strange error fixed version - Алдаа зассан хувилбар
22
[![npm](https://img.shields.io/npm/v/react-native-image-cache-wrapper.svg?style=flat-square)](https://www.npmjs.com/package/react-native-image-cache-wrapper)
33

44
The best react native image cache wrapper.

index.js

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,13 @@ export default class CachedImage extends Component {
2525
static defaultProps = {
2626
expiration: 86400 * 7, // default cache a week
2727
activityIndicator: null, // default not show an activity indicator
28+
defaultSource: require('static/images/default.png')
29+
2830
};
2931

3032
static cacheDir = RNFetchBlob.fs.dirs.CacheDir + "/CachedImage/";
3133

34+
static sameURL = []
3235
/**
3336
* delete a cache file
3437
* @param url
@@ -106,6 +109,12 @@ export default class CachedImage extends Component {
106109
}
107110

108111
const cacheFile = _getCacheFilename(url);
112+
if(CachedImage.sameURL.includes(cacheFile)){
113+
114+
success && success(cacheFile);
115+
return
116+
}
117+
CachedImage.sameURL.push(cacheFile)
109118

110119
RNFetchBlob.fs.stat(cacheFile)
111120
.then((stats) => {
@@ -118,6 +127,8 @@ export default class CachedImage extends Component {
118127
})
119128
.catch((error) => {
120129
// not exist
130+
// success && success(cacheFile)
131+
121132
_saveCacheFile(url, success, failure);
122133
});
123134
};
@@ -160,7 +171,7 @@ export default class CachedImage extends Component {
160171
// cache failed use original source
161172
if (this._mounted) {
162173
setTimeout(() => {
163-
this.setState({source: this.props.source});
174+
this.setState({source: { uri: this.props.source}});
164175
}, 0);
165176
}
166177
this._downloading = false;
@@ -190,6 +201,10 @@ export default class CachedImage extends Component {
190201
if (!this._useDefaultSource && this.props.defaultSource) {
191202
this._useDefaultSource = true;
192203
setTimeout(() => {
204+
if(this.props.source && this.props.source.uri ){
205+
this.setState({source: this.props.source});
206+
}
207+
else
193208
this.setState({source: this.props.defaultSource});
194209
}, 0);
195210
}
@@ -313,4 +328,4 @@ async function _saveCacheFile(url: string, success: Function, failure: Function)
313328
} catch (error) {
314329
failure && failure(error);
315330
}
316-
}
331+
}

0 commit comments

Comments
 (0)