删除并重新安装我的 node_modules 文件夹后,我在 LayoutPropTypes.js 文件中遇到了一个我不理解的问题。
以下node_modules/react-native/Libraries/StyleSheet/LayoutPropTypes.js 变量未定义:var ReactPropTypes = require('React').PropTypes;
node_modules/react-native/Libraries/StyleSheet/LayoutPropTypes.js
var ReactPropTypes = require('React').PropTypes;
反应原生:0.45.1 反应:16.0.0-alpha.12
React.PropTypes您遇到的问题与React 16 中的弃用和删除有关。自 React 16 起,PropTypes它们不再是主react包的一部分,并且已被移至单独的prop-types包。
React.PropTypes
PropTypes
react
prop-types
在 React Native 0.45.1 中,该库似乎仍在引用React.PropTypes,这导致了错误,因为PropTypes在 React 16 中找不到。
您需要将您的 React Native 版本更新为支持 React 16 的较新版本。或者,如果无法更新 React Native,您可以手动修补代码以使用该prop-types包。
npm install prop-types
LayoutPropTypes.js
``` // Change this line // var ReactPropTypes = require(‘React’).PropTypes;
// To this line var PropTypes = require(‘prop-types’); ```
ReactPropTypes
``` // Example: // height: ReactPropTypes.number,
// Change to: height: PropTypes.number, ```
以下是修改方法的示例LayoutPropTypes.js:
var PropTypes = require('prop-types'); var LayoutPropTypes = { width: PropTypes.number, height: PropTypes.number, top: PropTypes.number, left: PropTypes.number, right: PropTypes.number, bottom: PropTypes.number, // Add other prop types as needed }; module.exports = LayoutPropTypes;
更新 React Native 版本是推荐的长期解决方案。要更新 React Native,您可以按照官方的 React Native 升级指南进行操作。通常,您会更新package.json依赖项并运行npm install或yarn install。
package.json
npm install
yarn install
{ "dependencies": { "react": "^16.0.0", "react-native": "^0.63.0" } }
然后运行:
npm install # or yarn install
更新后,请务必彻底测试您的应用程序,因为重大更新可能会引入重大变化。