jsdf/react-native-htmlview

Error: Invariant Violation: ViewPropTypes has been removed from React Native. Migrate to ViewPropTypes exported from 'deprecated-react-native-prop-types'.

YogeshBhatt opened this issue ยท 3 comments

Hi! ๐Ÿ‘‹

Firstly, thanks for your work on this project! ๐Ÿ™‚

Today I used patch-package to patch react-native-htmlview@0.16.0 for the project I'm working on.

Here is the diff that solved my problem:

diff --git a/node_modules/react-native-htmlview/HTMLView.js b/node_modules/react-native-htmlview/HTMLView.js
index 43f8b7e..654699c 100644
--- a/node_modules/react-native-htmlview/HTMLView.js
+++ b/node_modules/react-native-htmlview/HTMLView.js
@@ -1,13 +1,16 @@
 import React, {PureComponent} from 'react';
 import PropTypes from 'prop-types';
 import htmlToElement from './htmlToElement';
-import {Linking, Platform, StyleSheet, View, ViewPropTypes} from 'react-native';
+import {Linking, Platform, StyleSheet, View} from 'react-native';
 
 const boldStyle = {fontWeight: 'bold'};
 const italicStyle = {fontStyle: 'italic'};
 const underlineStyle = {textDecorationLine: 'underline'};
 const strikethroughStyle = {textDecorationLine: 'line-through'};
 const codeStyle = {fontFamily: Platform.OS === 'ios' ? 'Menlo' : 'monospace'};
+const ViewPropTypes = typeof document !== 'undefined' || Platform.OS === 'web'
+  ? PropTypes.shape({style: PropTypes.object})
+  : require('react-native').ViewPropTypes || View.propTypes;
 
 const baseStyles = StyleSheet.create({
   b: boldStyle,

This issue body was partially generated by patch-package.

So how can we add these change to this library!
I mean without changing files in node_modules!

@YogeshBhatt I created a fork with these changes, Is this alright or is it there some other better way

Hi!
I solve my problem by simple installing the 'deprecated-react-native-prop-types' library and importing the ViewPropTypes from there

-import {Linking, Platform, StyleSheet, View, ViewPropTypes} from 'react-native';
+import { Linking, Platform, StyleSheet, View } from 'react-native';
+import { ViewPropTypes } from 'deprecated-react-native-prop-types'