美文网首页
React Native遇到的坑点

React Native遇到的坑点

作者: longsan0918 | 来源:发表于2017-08-11 15:13 被阅读292次

1 React Native - expected a component class, got [object Object]
该错误可能是你引用了小写的组件,组件首字母一定要大写,比如<login/>应该写成<Login/>


Simulator Screen Shot 2017年8月11日 下午3.10.43.png
view首字母小写了 报错
<view style={styles.container}>
                <Text>
                    哈哈哈哈
                </Text>
            </view>

2 React Native 0.32以下版本Xcode8报错解决办法

RCTSRWebSocket.m报错
Ignoring return value of function declared with warn_unused_result attribute
这个报错在此文件中有两处,代码

SecRandomCopyBytes(kSecRandomDefault, sizeof(uint32_t), (uint8_t *)mask_key);
修改为

(void)SecRandomCopyBytes(kSecRandomDefault, sizeof(uint32_t), (uint8_t *)mask_key);
前面加上(void)。

RCTScrollView.m 报错
Use of undeclared identifier '_refreshControl'; did you mean 'refreshControl'?
@implementation RCTCustomScrollView
{
  __weak UIView *_dockedHeaderView;
  RCTRefreshControl *_refreshControl;  // 加入此行
}

3 运行别人的项目 xcode编译出错
** BUILD FAILED **

The following commands produced analyzer issues: Analyze RCTLocationObserver.m (1 command with analyzer issues)

The following build commands failed: CompileC /Users/nicolasjoly/Devel/AwesomeProject/ios/build/Build/Intermediates/RCTWebSocket.build/Debug-iphonesimulator/RCTWebSocket.build/Objects-normal/x86_64/RCTSRWebSocket.o RCTSRWebSocket.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler Analyze RCTLocationObserver.m CompileC /Users/nicolasjoly/Devel/AwesomeProject/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/Objects-normal/x86_64/RCTNetworkTask.o RCTNetworkTask.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (3 failures) Installing build/Build/Products/Debug-iphonesimulator/AwesomeProject.app No devices are booted. Print: Entry, ":CFBundleIdentifier", Does Not Exist /Users/nicolasjoly/Devel/AwesomeProject/node_modules/react-native/node_modules/promise/lib/done.js:10 throw err; ^

Error: Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/AwesomeProject.app/Info.plist Print: Entry, ":CFBundleIdentifier", Does Not Exist

at checkExecSyncError (child_process.js:464:13)
at Object.execFileSync (child_process.js:484:13)
at _runIOS (/Users/nicolasjoly/Devel/AwesomeProject/node_modules/react-native/local-cli/runIOS/runIOS.js:82:34)
at /Users/nicolasjoly/Devel/AwesomeProject/node_modules/react-native/local-cli/runIOS/runIOS.js:24:5
at tryCallTwo (/Users/nicolasjoly/Devel/AwesomeProject/node_modules/react-native/node_modules/promise/lib/core.js:45:5)
at doResolve (/Users/nicolasjoly/Devel/AwesomeProject/node_modules/react-native/node_modules/promise/lib/core.js:200:13)
at new Promise (/Users/nicolasjoly/Devel/AwesomeProject/node_modules/react-native/node_modules/promise/lib/core.js:66:3)
at Array.runIOS (/Users/nicolasjoly/Devel/AwesomeProject/node_modules/react-native/local-cli/runIOS/runIOS.js:23:10)
at Object.run (/Users/nicolasjoly/Devel/AwesomeProject/node_modules/react-native/local-cli/cliEntry.js:88:13)
at Object.<anonymous> (/usr/local/lib/node_modules/react-native-cli/index.js:88:7)

react-native upgrade
选择 yes
react-native run-ios

npm安装node_modules
node_modules 是整个项目的依赖, 里面包含什么呢? 包含的文件全部都写在package.json
文件中了。 这个文件是必不可少的。我们需要按照这个列表下载。
这时候需要给大家简单介绍下,因为react native项目是通过nodejs构建的,所以在nodejs项目中都需要package.json
文件。具体大家可以看看nodejs相关知识 。 七天学会 Nodejs
安装node_modules 非常简单, 进入项目目录执行命令npm install
会自动按照package.json
下载对应的依赖。但是问题来了, 经常会出现下面的错误:

错误

大部分都是由于网速的问题导致的,有些依赖甚至需要翻墙才能下载。最好的办法就是把npm的下载源改成国内的镜像,修改方法有三种,如下:
1.通过config命令npm config set registry https://registry.npm.taobao.orgnpm info underscore (如果上面配置正确这个命令会有字符串response)
2.命令行指定npm --registry https://registry.npm.taobao.org info underscore
3.编辑~/.npmrc加入下面内容registry = https://registry.npm.taobao.org(Mac下的路径:/usr/local/etc/npmrc)
修改完了,再执行npm install
下载完成就会有如下的提示:

Paste_Image.png

剩下的就是运行项目了。

4 Navigator被废弃了 'Navigator' is deprecated and has been removed from this package. It can now be installed ' +

这是因为版本升级到0.43以上的话,Navigator不能直接从react-native里面获取了,

解决方案:

在工程目录中 npm install react-native-deprecated-custom-components
--save

然后在引用的地方

import {Navigator} from 'react-native-deprecated-custom-components';

相关文章

网友评论

      本文标题:React Native遇到的坑点

      本文链接:https://www.haomeiwen.com/subject/pyzlrxtx.html