diff --git a/packages/react-native-web/src/exports/Image/__tests__/index-test.js b/packages/react-native-web/src/exports/Image/__tests__/index-test.js index c29058b2..6eecde55 100644 --- a/packages/react-native-web/src/exports/Image/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/Image/__tests__/index-test.js @@ -180,6 +180,20 @@ describe('components/Image', () => { .attr('src') ).toBe(uriTwo); }); + + test('is correctly updated when missing in initial render', () => { + jest.useFakeTimers(); + const uri = 'https://testing.com/img.jpg'; + const component = mount(); + component.setProps({ source: { uri } }); + jest.runOnlyPendingTimers(); + expect( + component + .render() + .find('img') + .attr('src') + ).toBe(uri); + }); }); describe('prop "style"', () => { diff --git a/packages/react-native-web/src/exports/Image/index.js b/packages/react-native-web/src/exports/Image/index.js index fec5a2ca..f1029143 100644 --- a/packages/react-native-web/src/exports/Image/index.js +++ b/packages/react-native-web/src/exports/Image/index.js @@ -168,8 +168,8 @@ class Image extends Component<*, State> { if (uri !== nextUri) { ImageUriCache.remove(uri); const isPreviouslyLoaded = ImageUriCache.has(nextUri); - isPreviouslyLoaded && ImageUriCache.add(uri); - this._updateImageState(getImageState(uri, isPreviouslyLoaded)); + isPreviouslyLoaded && ImageUriCache.add(nextUri); + this._updateImageState(getImageState(nextUri, isPreviouslyLoaded)); } }