在学习React.js 或 React Native时,经常会遇到一些由于框架或库更新导致的问题,这些问题是初学者常见的障碍。
### 1. 编译错误 'config.h' 文件未找到
此问题通常出现在创建新的React Native项目时。解决步骤如下:
- 在Xcode中,依次选择 File -> Project settings -> Build System -> Legacy Build System。
- 然后运行以下命令:
cd node_modules/react-native/third-party/glog-0.3.4
../../scripts/ios-configure-glog.sh
升级至Xcode 10.1后,此问题通常会自动解决。
### 2. 加载Bundle失败
当遇到加载失败的问题时,可以通过以下步骤尝试解决:
- 清除Watchman监视:`watchman watch-del-all`
- 删除node_modules目录并重新安装:`rm -rf node_modules && npm install`
- 重置Metro Bundler缓存:`rm -rf /tmp/metro-bundler-cache-*` 或 `npm start -- --reset-cache`
- 移除haste缓存:`rm -rf /tmp/haste-map-react-native-packager-*`
此外,还可以通过下载并替换`.rncache`文件夹中的`boost_1_63_0.tar.gz`文件来解决某些特定的编译问题。最后,执行`npm install -g react-native-git-upgrade && react-native-git-upgrade`和`react-native run-ios`命令,并重启计算机以确保所有更改生效。
### 3. 导入Navigator组件报错
从React Native 0.44版本开始,`Navigator`组件已被移至`react-native-deprecated-custom-components`模块。如果遇到找不到文件或目录的错误,可以尝试完全关闭模拟器后再重新运行`react-native run-ios`。
### 4. PropTypes迁移问题
自React 16起,PropTypes已从React核心库中分离出来,现在需要通过`prop-types`包来使用。具体操作为安装该包:`npm install prop-types --save`,然后在项目中导入:`import PropTypes from 'prop-types'`。
### 5. View.propTypes.style 报错
如果遇到“Undefined is not an object (evaluating _reactNative.View.propTypes.style)”的错误,可以参考GitHub上的相关Issue(#16542),将`View.PropTypes.style`改为`ViewPropTypes.style`。如果问题仍然存在,还需额外引入`ViewPropTypes`:`import { ViewPropTypes } from 'react-native'`。