diff --git a/packages/react-native-web/src/exports/findNodeHandle/index.js b/packages/react-native-web/src/exports/findNodeHandle/index.js index b5699583..0cf1cecf 100644 --- a/packages/react-native-web/src/exports/findNodeHandle/index.js +++ b/packages/react-native-web/src/exports/findNodeHandle/index.js @@ -8,4 +8,15 @@ */ import { findDOMNode } from 'react-dom'; -export default findDOMNode; + +const findNodeHandle = component => { + let node; + + try { + node = findDOMNode(component); + } catch (e) {} + + return node; +}; + +export default findNodeHandle; diff --git a/packages/react-native-web/src/modules/NativeMethodsMixin/index.js b/packages/react-native-web/src/modules/NativeMethodsMixin/index.js index d88c1555..7c985ac8 100644 --- a/packages/react-native-web/src/modules/NativeMethodsMixin/index.js +++ b/packages/react-native-web/src/modules/NativeMethodsMixin/index.js @@ -100,12 +100,14 @@ const NativeMethodsMixin = { return; } const node = findNodeHandle(this); - // Next state is determined by comparison to existing state (in the DOM). - // Existing state has already gone through i18n transform - const domProps = createDOMProps(null, nativeProps, style => - styleResolver.resolveWithNode(style, node) - ); - UIManager.updateView(node, domProps, this); + if (node) { + // Next state is determined by comparison to existing state (in the DOM). + // Existing state has already gone through i18n transform + const domProps = createDOMProps(null, nativeProps, style => + styleResolver.resolveWithNode(style, node) + ); + UIManager.updateView(node, domProps, this); + } } };