美文网首页
ios原生集成RN

ios原生集成RN

作者: 桔子橙子柚子_F | 来源:发表于2018-12-06 15:08 被阅读0次

搭建开发环境:https://reactnative.cn/docs/getting-started.html
1、创建ios项目
2、在目录文件下 创建index.ios.js和package.json文件
index.ios.js中写

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View
} from 'react-native';

export default class Main extends Component {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          Welcome to React Native!
        </Text>
        <Text style={styles.instructions}>
          Hello World
        </Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});

AppRegistry.registerComponent('xxx', () => Main); //xxx项目名称  Main是所要显示的组件名称

在package.json中写

{
  "name": "xxx",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start"
  },
  "dependencies": {
    "react": "16.0.0-alpha.6",     //注意版本
    "react-native": "0.51"          //注意版本
  }
}

3、打开终端在package.json目录文件下执行npm install;成功后出现node_modules文件夹
4、配置podfile文件

pod 'React', :path => './node_modules/react-native', :subspecs => [
    'Core',
    'CxxBridge', # 如果RN版本 >= 0.45则加入此行
    'RCTText',
    'RCTNetwork',
    'RCTWebSocket', # 这个模块是用于调试功能的
  ]

pod "yoga", :path => "./node_modules/react-native/ReactCommon/yoga"  //注意此处文件地址可根据实际情况变化

在终端执行pod install
5、创建RNViewController,在viewDidLoad中写

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    NSString *url = @"http://localhost:8081/index.ios.bundle?platform=ios&dev=true";
    NSURL *jsCodeLocation = [NSURL URLWithString:url];
    RCTRootView * rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"wutongzc" initialProperties:nil launchOptions:nil];
    self.view = rootView;
}

6、启动服务器 npm start
7、新建viewController集成RNViewController,编译运行
我出现了 undefined is not an object(evaluating ‘ReactInternals.ReactCurrentOwner’)这个错误
https://blog.csdn.net/yeputi1015/article/details/80698072 在这个里面找到了解决办法 原因:当低版本升级到高版本时,经常会遇到,应该package.json中版本问题
解决办法:执行以下命令解决~npm i react@16.0.0-alpha.12 --save
8、

效果图.png

相关文章

网友评论

      本文标题:ios原生集成RN

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