From 748b2d0f3fc49ff66c18b6e7d463840a92245892 Mon Sep 17 00:00:00 2001 From: Jakub Rimal Date: Mon, 12 Feb 2018 08:26:28 -0800 Subject: [PATCH] [fix] Image 'source' prop update when missing in initial render Close #811 --- .../src/exports/Image/__tests__/index-test.js | 14 ++++++++++++++ .../react-native-web/src/exports/Image/index.js | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) 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)); } }