mirror of
https://github.com/status-im/react-native.git
synced 2025-01-26 17:30:25 +00:00
Improve error messages when nesting View in Text
Summary: Since we don't support this, we should throw early. Also tries to improve the error message when adding a node that doesn't have a YogaNode to a node that can't measure itself. Reviewed By: andreicoman11 Differential Revision: D4421542 fbshipit-source-id: e0be8cdd763091145e5e6af2db91515f4d236b37
This commit is contained in:
parent
76c4faee5e
commit
963e6e9d36
@ -21,6 +21,8 @@ const ReactNativeViewAttributes = require('ReactNativeViewAttributes');
|
||||
const StyleSheetPropType = require('StyleSheetPropType');
|
||||
const ViewStylePropTypes = require('ViewStylePropTypes');
|
||||
|
||||
const invariant = require('invariant');
|
||||
|
||||
var TVViewPropTypes = {};
|
||||
if (Platform.isTVOS) {
|
||||
TVViewPropTypes = require('TVViewPropTypes');
|
||||
@ -506,7 +508,15 @@ const View = React.createClass({
|
||||
needsOffscreenAlphaCompositing: PropTypes.bool,
|
||||
},
|
||||
|
||||
contextTypes: {
|
||||
isInAParentText: React.PropTypes.bool,
|
||||
},
|
||||
|
||||
render: function() {
|
||||
invariant(
|
||||
!(this.context.isInAParentText && Platform.OS === 'android'),
|
||||
'Nesting of <View> within <Text> is not supported on Android.');
|
||||
|
||||
// WARNING: This method will not be used in production mode as in that mode we
|
||||
// replace wrapper component View with generated native wrapper RCTView. Avoid
|
||||
// adding functionality this component that you'd want to be available in both
|
||||
|
@ -167,7 +167,9 @@ public class ReactShadowNode {
|
||||
YogaNode childYogaNode = child.mYogaNode;
|
||||
if (childYogaNode == null) {
|
||||
throw new RuntimeException(
|
||||
"Cannot add a child that doesn't have a CSS node to a node without a measure function!");
|
||||
"Cannot add a child that doesn't have a YogaNode to a parent without a measure " +
|
||||
"function! (Trying to add a '" + child.getClass().getSimpleName() + "' to a '" +
|
||||
getClass().getSimpleName() + "')");
|
||||
}
|
||||
mYogaNode.addChildAt(childYogaNode, i);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user