diff --git a/Libraries/Image/Image.android.js b/Libraries/Image/Image.android.js index 7b055780f0..75c722fa4d 100644 --- a/Libraries/Image/Image.android.js +++ b/Libraries/Image/Image.android.js @@ -113,6 +113,14 @@ var Image = React.createClass({ render: function() { var source = resolveAssetSource(this.props.source); + + // As opposed to the ios version, here it render `null` + // when no source or source.uri... so let's not break that. + + if (source && source.uri === '') { + console.warn('source.uri should not be an empty string'); + } + if (source && source.uri) { var isNetwork = source.uri.match(/^https?:/); invariant( diff --git a/Libraries/Image/Image.ios.js b/Libraries/Image/Image.ios.js index 48fcb278ba..59084721e4 100644 --- a/Libraries/Image/Image.ios.js +++ b/Libraries/Image/Image.ios.js @@ -19,6 +19,7 @@ var NativeModules = require('NativeModules'); var PropTypes = require('ReactPropTypes'); var React = require('React'); var ReactNativeViewAttributes = require('ReactNativeViewAttributes'); +var View = require('View'); var StyleSheet = require('StyleSheet'); var StyleSheetPropType = require('StyleSheetPropType'); @@ -165,6 +166,11 @@ var Image = React.createClass({ var {width, height} = source; var style = flattenStyle([{width, height}, styles.base, this.props.style]) || {}; + if (source.uri === '') { + console.warn('source.uri should not be an empty string'); + return ; + } + var isNetwork = source.uri && source.uri.match(/^https?:/); var RawImage = isNetwork ? RCTNetworkImageView : RCTImageView; var resizeMode = this.props.resizeMode || (style || {}).resizeMode || 'cover'; // Workaround for flow bug t7737108 diff --git a/Libraries/Image/RCTImageLoader.m b/Libraries/Image/RCTImageLoader.m index 50040c95fb..7a3c235a26 100644 --- a/Libraries/Image/RCTImageLoader.m +++ b/Libraries/Image/RCTImageLoader.m @@ -95,6 +95,10 @@ RCT_EXPORT_MODULE() progressBlock:(RCTImageLoaderProgressBlock)progressBlock completionBlock:(RCTImageLoaderCompletionBlock)completionBlock { + if ([imageTag isEqualToString:@""]) { + RCTLogWarn(@"source.uri should not be an empty string "); + return nil; + } NSURL *requestURL = [RCTConvert NSURL:imageTag]; id loadHandler = [self imageURLLoaderForRequest:requestURL]; if (!loadHandler) {