React Native技术知识总结

4 篇文章 0 订阅
3 篇文章 0 订阅

1.JSON

 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON

  • JSON.parse()解析JSON字符串, 可以选择改变前面解析后的值及其属性,然后返回解析的值。

  • JSON.stringify()返回指定值的 JSON 字符串,可以自定义只包含某些特定的属性或替换属性值。

2.转换图片得到图片的uri

import resolveAssetSource from 'resolveAssetSource';
var img = require('./qaq.png');
var source = resolveAssetSource(img);

获取img图片:<Image resizeMode={'contain'} style={{width:140,height:140}} source={{uri:image}}/>

3.布局-输入框与按钮连接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<View
  style={{flexDirection:  'row' ,alignItems:  'center' ,alignSelf:  'stretch' , justifyContent: 'center' , backgroundColor: '#fff' ,padding:15}}>
     <TextInput
  style={{height:40,fontSize:15, borderWidth:1, borderColor: '#eee' , width:220, padding:10}}
         multiline={ false }
         autoCapitalize= "none"
  autoCorrect={ false }
         value={ this .state.text}
         onChangeText={(text)=> this .setState({text})}
         placeholder= "输入文字..."
  maxLength={10}
         autoFocus={ true }
         returnKeyType= "go"
  clearButtonMode= "always" />
     <Button
  containerStyle={{height:40, alignItems:  'center' , backgroundColor:  '#00a7ec' , paddingTop:7, paddingLeft:15, paddingRight:15}}
         style={{ color: '#ffffff' }}
         onPress={()=> this ._makeTransImage( this .state.text,source.uri)}>
         确认
     </Button>
</View>

4.如何让我们自己的插件支持npm install和rnpm link?

  1. 首先需要在我们的插件文件夹中添加一个package.json文件(name要修改): { "name": "react-native-nc-gpuimage", "version": "1.0.0", "description": "nc-gpuimage", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Northcloud", "license": "MIT" }
  2. 接着在我们的插件文件夹中田健一个index.js文件,将我们需要的函数封装进来: import {imageFilterManager} from 'NativeModules'; var imageSvc = { addTextOnTransparentImage: function (text, imagePath) { return new Promise(function (resolve, reject) { imageFilterManager.addTextOnTransparentImage(text, imagePath, resolve, reject); }); }, addImageOnImage: function (aboveImagePath, belowImagePath, fromLeft, fromTop, radius) { return new Promise(function (resolve, reject) { imageFilterManager.addImageOnImage(aboveImagePath, belowImagePath, fromLeft, fromTop, radius, resolve, reject); }); } }; export default imageSvc;
  3. 文件添加完成后,需要我们将项目关闭后,再分别执行npm install和rnpm link命令。
  4. 我们可以检查一下node_modules文件中是否有我们的插件。
  5. 使用方法:在需要用到函数的文件中先引用这个插件:import imageSvc from 'react-native-nc-gpuimage'; 然后再使用插件中的函数。

5.TextInput键盘问题

添加这个属性:keyboardShouldPersistTaps={false}

这样在iOS上,输入框打开后,手点击空白处,键盘就会自动下去了

6.对象循环找到对应值

1
2
3
4
5
var  self =  this ;
Object.keys(self.downPayments).map( function (val,i){
  if (val==self.state.payment){
  }
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Native 是一款基于 JavaScript 的框架,可以帮助我们快速开发 iOS 和 Android 应用程序。如果你想将 React Native 集成进你的现有 iOS 项目中,可以按照以下步骤进行操作: 1. 创建一个新的 React Native 项目 首先,你需要在你的电脑上安装好 React Native 开发环境。接着,在终端中输入以下命令创建一个新的 React Native 项目: ``` npx react-native init MyReactNativeApp ``` 2. 将 React Native 项目中的 jsCodeLocation 文件复制到 iOS 项目中 在 React Native 项目的 ios 目录下,你会找到一个名为 MyReactNativeApp.xcodeproj 的 Xcode 项目文件。打开该文件,然后将 jsCodeLocation 文件夹中的 main.jsbundle 文件和 index.js 文件复制到你的 iOS 项目中。 3. 在 iOS 项目中添加 React Native 依赖库 在你的 iOS 项目中,你需要添加以下依赖库: - libRCTWebSocket.a - libfishhook.a - libcxxreact.a - libReact.a 你可以通过 CocoaPods 或手动添加库的方式来完成此操作。如果你使用 CocoaPods,只需要在 Podfile 中添加以下代码: ``` pod 'React', :path => '../node_modules/react-native', :subspecs => [ 'Core', 'CxxBridge', 'DevSupport', 'RCTText', 'RCTNetwork', 'RCTWebSocket', 'RCTAnimation', 'RCTImage', 'RCTLinkingIOS', 'RCTSettings', 'RCTVibration', 'RCTActionSheet', 'RCTBlob', 'RCTGeolocation', 'RCTPushNotification', 'RCTStatusBar', 'RCTCameraRoll' ] ``` 然后在终端中运行以下命令: ``` pod install ``` 如果你手动添加库,可以在 Build Phases 中添加以下库: - libRCTWebSocket.a - libfishhook.a - libcxxreact.a - libReact.a 4. 在 iOS 项目中添加 React Native 模块 如果你想在 iOS 项目中使用 React Native 模块,你需要将其添加到你的 iOS 项目中。具体操作方式可以参考 React Native 官方文档中的说明。 5. jsCodeLocation 生成方式总结React Native 项目中,你可以通过以下两种方式生成 jsCodeLocation: - 手动生成 在终端中输入以下命令: ``` react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios ``` 该命令会生成一个名为 main.jsbundle 的文件,该文件就是 jsCodeLocation。 - 自动更新 在 Xcode 项目中,你可以使用 RCTBundleURLProvider 类来动态生成 jsCodeLocation。该类会根据当前环境生成不同的 jsCodeLocation,例如在开发环境中,它会生成一个指向本地服务器的 jsCodeLocation。在生产环境中,它会生成一个指向发布的 jsCodeLocation。在使用 RCTBundleURLProvider 类之前,你需要先在 AppDelegate.m 文件中导入该类: ``` #import <React/RCTBundleURLProvider.h> ``` 然后,在 didFinishLaunchingWithOptions 方法中添加以下代码: ``` NSURL *jsCodeLocation; #ifdef DEBUG jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; #else jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; #endif RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"MyReactNativeApp" initialProperties:nil launchOptions:launchOptions]; ``` 以上代码会根据当前环境生成不同的 jsCodeLocation。在开发环境中,它会生成一个指向本地服务器的 jsCodeLocation。在生产环境中,它会生成一个指向发布的 jsCodeLocation。 以上就是将 React Native 集成进现有 iOS 项目中的过程记录。如果你想了解更多关于 React Native知识,可以参考 React Native 官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值