- 博客(151)
- 问答 (1)
- 收藏
- 关注

原创 react native modal android实现全屏
react native 原生modal默认不能覆盖Android的statusbar.这对于一个强迫症患者来说真是难受。一开始尝试将statabar透明但还是不能绘制到statusbar。最后无奈之下只好参考react native的modal去自己写一个啦。 参考modal目录:node_modules/react-native/ReactAndroid/src/main/java/com/...
2018-02-13 19:03:33
6730

原创 codepush4之linux下配置自己服务器
codepush热更新 codepush2之配置自己的服务器 codepush3之Android原生引用集成codepush通过ssh方式远程连接服务器 ssh 用户名@ip 例如: ssh root@172.28.32.244 用户名:root 密码:123456服务器配置1: 通过nvm安装node 安装nvm 参考:https://github.
2018-02-01 11:33:06
973

原创 react-native封装原生下拉刷新组件
之前改进过一个react-native-pull组件解决了iOS上刷新头部出现空白问题,并且将listview改成了flatlist。 github如下: react-native-pullview这是纯js写的Android&&iOS都可以使用。在iOS上面性能还是可以的,但是在Android上滑动时虽然也可以使用但是总是感觉有点卡顿,不是很如意。 因为rn在Android上滑动事件就不是
2018-01-22 18:37:39
3942
原创 一张图搞定js原型链
一张图搞定js原型链1: 构造函数才有prototype2: 对象会有__proto__ 指向其原型3: 原型的constructor指向其构造函数4: 原型的终点是null终点在在于理解prototype, proto, constructor的指向
2021-03-07 21:26:15
299
原创 js对象
对象属性一属性类型:1:数据属性 [[configurable]]:表示能否delete删除属性,默认为true [[enumerable]]:能否通过in迭代访问 [[writable]]:能否修改属性值 [[value]]:包含这个属性的数据值,读取和访问时都说该值,默认undefined。 2:访问器属性 [[get]]:读取属性时调用,默认值undefined。 ...
2018-07-28 17:24:06
452
原创 js函数总结
一声明: 函数声明,存在声明提升 函数表达式二内部对象: 每个函数都有this,argments两个对象。 apply call bind 内部方法 参数传递是值传递三执行环境: 1:作用域 =>保存当前和父环境活动对象的指针数组 2:活动对象=>argments,声明的变量 3:this=>动态改变四闭包: 访问函数内部私有变量 延迟变量声明周期...
2018-07-21 17:33:22
397
1
原创 rn webview问题
1:Error loading page Domain: WebKitErrorDomain Error Code: 101 The URL can’t be shown参考:https://github.com/wuyunqiang/ReactNativeUtil/issues/481:webview添加header问题header中是以key:value的形式存在的并且,ke...
2018-05-25 18:38:50
2486
原创 react native webview与H5通信
之前写过一篇封装原生webview的文章,https://blog.youkuaiyun.com/u014041033/article/details/78625859 但是那只是android端的,不能应用iOS端,随着rn的发展,rn提供的webview也可以满足我们的开发需求,而且android&&ios 都可以统一处理,所以还是建议大家使用原生提供的组件,这里做简单的rn webvi
2018-05-25 18:28:26
3099
原创 RSA加解密问题
在做项目中为了安全考虑会对数据进行加密,这里使用了RSA进行加密。 总结如下: 特点:公钥加密私钥解密;私钥签名公钥认证;公钥就是通过私钥生成的。 优点:非对称加密,安全性高; 缺点:加解密效率低,耗费性能因此不适合对大量数据进行加密。 问题: 一:长度问题 rsa根据私钥长度的不同对加密解密内容的限制也不一样,一般来说加密的内容长队=私钥长队/8,但是这里还有一个问题那就是对齐方式...
2018-04-30 19:42:56
1150
原创 RN中的this机制
一 :四种绑定规则优先级由高到低顺序 1:new 绑定var o = { m: function(){ return this; }}var obj = new o.m();//obj为新产生的对象console.log(obj,obj === o);//{} falseconsole.log(obj.constructor === o.m);...
2018-04-21 17:27:04
1364
原创 深入理解ES6之模块
深入理解ES6之var,let,const区别 深入理解ES6之函数 深入理解ES6之对象 深入理解ES6之类 深入理解ES6之解构 深入理解ES6之Promise与异步编程一:模块背景:JS”共享一切”的代码加载方式是该语言混乱且容易出错的原因之一,这种方式导致了诸多问题,例如命名冲突,安全问题等。ES6模块化就是要解决作用域问题,让JS变的更有条理。 模块的特点 1:模块...
2018-03-13 14:12:10
2077
原创 深入理解ES6之Promise与异步编程
深入理解ES6之var,let,const区别 深入理解ES6之函数 深入理解ES6之对象 深入理解ES6之类 深入理解ES6之解构 深入理解ES6之模块一:异步编程背景:JS引擎建立在单线程事件循环的概念上,js引擎同一时间只能执行一段代码,每当一段代码准备被执行,他就会被添加到作业队列。当JS引擎结束当前代码的执行后,事件循环就会执行队列的下一个作业。作业会从队列的第一个开始...
2018-03-13 14:03:14
590
原创 深入理解ES6之解构
深入理解ES6之var,let,const区别 深入理解ES6之函数 深入理解ES6之对象 深入理解ES6之类 深入理解ES6之Promise与异步编程 深入理解ES6之模块一:为什么用解构:在之前提取数据对象需要逐个赋值,可能会为了一个小数据挖掘整个机构,ES6给数组和对象添加了解构可以方便提取数据。二:对象解构:1:let node = { typ...
2018-03-12 13:57:34
5811
原创 深入理解ES6之类
深入理解ES6之var,let,const区别 深入理解ES6之函数 深入理解ES6之对象 深入理解ES6之解构 深入理解ES6之Promise与异步编程 深入理解ES6之模块一:类与自定义类型的区别:1:类生命不会被提升,这与函数定义不同。类声明的行为与let相似,因此在程序的执行到达声明之前,类会存在暂时性死区。 2:类声明的所有代码会自动运行在严格模式下 3:类的所有方...
2018-03-09 17:25:03
911
原创 深入理解ES6之对象
深入理解ES6之var,let,const区别 深入理解ES6之函数 深入理解ES6之类 深入理解ES6之解构 深入理解ES6之Promise与异步编程 深入理解ES6之模块一:对象的属性1:属性速记法://之前function createPerson(name,age){ return { name:name, age:age }}v...
2018-03-08 14:20:23
583
原创 深入理解ES6之函数
深入理解ES6之var,let,const区别 深入理解ES6之对象 深入理解ES6之类 深入理解ES6之解构 深入理解ES6之Promise与异步编程 深入理解ES6之模块一:关于函数的参数:可以接受任意数量的参数而无视函数声明的参数数量是js函数的独特之处。1:参数默认值ES6之前做法: function makeRequest(url,timeout,...
2018-03-07 17:34:28
1927
原创 深入理解ES6之var,let,const区别
深入理解ES6之函数 深入理解ES6之对象 深入理解ES6之类 深入理解ES6之解构 深入理解ES6之Promise与异步编程 深入理解ES6之模块第一:块级范围内var变量提升(不存在以下问题) let块级作用域,指定块的外部无法访问 const常量声明块级作用域,不会发生变量提升,声明后不可以改变因此需要初始化.(对于一个对象而言不可改变是指引用不可变,内容可以改变相当于...
2018-03-07 14:18:30
2350
原创 TabNavigator自定义Tab(2)
TabNavigator自定义Tab(1) 实现如下效果 其实这种效果很简单只要实现自定义tab然后将需要凸起的Tab单独拿出来设置成绝对布局就可以实现了。 关键代码: render(){ const {navigation,jumpToIndex} = this.props; const {routes,} = navigation.state
2018-01-12 17:50:00
1306
原创 codepush3之Android原生引用集成codepush
codepush热更新 codepush2之配置自己的服务器 codepush4之linux下配置自己服务器 其实原生集成rn在集成codepush与新建rn项目集成codepush最主要的区别是node_modules的路径发生变化了另外应用也不再是一个reactApplication了。大多数错误都是这两点引起的。 这是我的文件目录 1:项目路径下命令行输入yarn add re
2018-01-08 16:26:52
2193
1
原创 react-native 0.46升级0.51报错:Bundling `index.android.js` [development, non-minified] 0.0% (0/1), failed
如图: 解决: 1:android /app/build.gradle 添加如下:project.ext.react = [ entryFile: "index.js"]2:在MainApplication里面 @Override protected String getJSMainModuleName() { return "i
2018-01-04 14:49:17
2020
原创 Android在原生集成react native
环境: Android studio3.0 react native 0.50 Mac 10.12.6 (16G29)react native使用方式有两种: 1:直接新建一个react native项目 2:在已经存在的原生项目中集成react native项目。 今天主要讲解第二种方式的步骤。 1:新建Android原生项目 2:在原生项目的根目录下执行npm init 输入pa
2017-12-01 14:44:04
3475
1
原创 rn+redux+immutable+saga+react-navigation技术栈
1:安装组件package如下:"dependencies": { "immutable": "^3.8.2", "react": "16.0.0-beta.5", "react-native": "0.49.3", "react-navigation": "^1.0.0-beta.15", "react-redux":
2017-11-28 15:43:02
1036
原创 To run dex in process, the Gradle daemon needs a larger heap. It currently has 1024 MB. For faster b
andorid studio 运行正常,通过命令行react-native run-android 报错。 如图: 解决: 1:app下build.gradle修改 defaultConfig { minSdkVersion 19 targetSdkVersion 26 versionCode 1 versionName "
2017-11-27 10:57:34
1182
原创 rn封装原生jsbridge与H5交互
一:首先按照https://github.com/lzyzsd/JsBridge配置jsbridge 二:封装jsbridge给rn调用 1:新建WebViewManager继承自SimpleViewManager 2:实现createViewInstance方法 返回一个webview实例 @Override protected BridgeWebView createViewI
2017-11-24 16:24:07
2928
原创 RN iOS网络是否连接bug
react native 是有判断网路是否连接这个接口的NetInfo。 可以通过这样来判断:isConnected=true 有网络,反之没有网络。 data = await NetInfo.isConnected.fetch().then((isConnected) => { console.log('isConnected',isConnected);
2017-11-13 14:00:47
1052
原创 codepush2之配置自己的服务器
codepush热更新 codepush3之Android原生引用集成codepush codepush4之linux下配置自己服务器codepush会去访问微软的服务器,在国内网速特别慢基本上和不能用没有什么区别。今天我们就来配置自己的服务器。 好处 1:网络不受限制 2:自是服务器端变化了codepush的命令依旧可以使用功能上不受影响。配置步骤这里我们以本地服务器为例。
2017-11-09 11:13:59
2442
原创 pullview使用flatlist下拉上拉
站在诸多巨人的肩上,写的这个库。自己用着感觉还行,大家可以试试。 scrollview&&FlatList android&&ios 1:flatlist与scrollview下拉刷新上拉加载更多 2:没有网络没有数据状态页面。 3:解决react-native-pull中iOS下拉头部出现空白问题。GitHub:https://github.com/wuyunqiang/react
2017-11-06 16:49:51
705
原创 android加载gif图片
版本信息:OS: macOS Sierra 10.12.6Node: 8.3.0Yarn: 0.27.5npm: 5.5.1Xcode: Xcode9.01 Build version 9a1004Android Studio: 2.3.3 react-native: 0.49.3react: 16.0.0-beta.5rn上面android默认不支持gif图片加载需要在g
2017-11-06 16:40:32
318
原创 TabNavigator自定义Tab
react navigation三种导航,其中TabNavigation和StackNavigation用的比较多。今天要说的就是关于TabNavigation的样式问题,可能很多人都遇到过为什么明明设置了style和tabStyle还是会有问题。 我想可能会有很多人这样写:const tabbaroption = { activeTintColor: Color.f3474b,
2017-10-19 14:59:19
3504
原创 scrollView中按钮如何居下?
需求:现在有这样一种情况是在开发中经常遇到的,外层是一个scrollview组件,组件内部有很多组件高度不固定,最后是一个按钮,在不满一个屏幕时按钮位居底部,当超过一屏幕时按钮位于组件的末尾,可以随着scrollview滚动。效果图:
react navigation默认是使用key作为goback的参数进行返回的,这个key是一个动态生成的,而不是我们定义的routeName。 网上也有很多方法有的说更改源码,有的说是集成redux。更改源码的方式我也尝试过但是如果开启滑动返回属性,很容易就卡死。集成redux是一个不错的方式,但对于新手来说redux的模式还是太过于复杂,况且redux的强大在于数据流的控制,仅仅一个因为一...
2017-09-07 13:44:16
10775
原创 自定义react navigation跳转动画
自定义react navigation跳转动画,实现上下左右跳转页面。const StackOptions = ({navigation}) => { const gesturesEnabled = true; const headerStyle= { height:Platform.OS==='ios'?SCALE(100):SCALE(60),
2017-08-29 16:31:00
2387
原创 react native动画
·一:动画组件: Animated.Image Animated.Text Animated.View二:动画函数: 1:Animated.timing() – 推动一个值按照一个过渡曲线而随时间变化。Easing 模块定义了很多缓冲曲线函数。 2:Animated.decay() – 推动一个值以一个初始的速度和一个衰减系数逐渐变为0。 3:Animated.spring() –
2017-08-24 16:01:56
1337
原创 scrollView 宽高无效
Environmentreact-native -v:0.46.4node -v:v8.3.0npm -v:5.3.0yarn --version:0.27.5Target Platform: android && iosDevelopment Operating System: mac10.12.5Build tools:webstormSteps to Reproducecode
2017-08-23 16:29:00
1136
原创 React.createElement: type is invalid -- expected a string (for built-in components) or a class/funct
版本信息: “react”: “16.0.0-alpha.12”, “react-native”: “0.46.4”, “react-navigation”: “^1.0.0-beta.11” node:8.0.0 npm:5.0.1这是版本问题最后无奈只能降低版本。 如果是已经在项目中用了react-navigation那么升级后是没有这个问题的。 如果是新建项目然后使用react-
2017-07-21 14:08:11
9979
原创 react-native-elements/ListItem bug
在使用listitem的时候发现在Android上右图片默认显示不出来,在iOS运行直接报错 Unrecognized font family ‘Material Icons’。 修复: 打开ListItem源码发现这个 所以解决这个很简单只要设置hidechevron=true就可以了。 修改后效果: 版本信息: “react”: “16.0.0-alpha.6”,
2017-07-17 15:00:49
3673
原创 js数组API总结
callback中参数永远是(当前值value,下标index,原数组arr)遍历:1:foreach 对数组的每个元素执行一次提供的函数用法:array.forEach(callback(currentValue, index, array){ //do something}, this)array.forEach(callback[, thisArg])
2017-07-13 15:59:43
2622
1
原创 setState详解
首先如果直接在setState后面获取state的值是获取不到的 如图: 第一次,第二次打印都是初始值。通过异步方法调用可以获得值。 那么在实际的项目中我们应该怎么写呢? 因为setState是可以接受两个参数的,一个state,一个回调函数。因此我们可以在回调函数里面获取值。 所以我们可以得出结论: 1:setState异步调用 2:批量处理 并不是调用一次就会更新一次rende
2017-07-10 17:42:56
5376
原创 react-native-elements/SwipeDeck android bug
安装react-native-elements库文件 详见: https://github.com/react-native-training/react-native-elements/blob/master/default_installation.md SwipeDeck ios 运行结果: Android 运行结果: 修改代码: SwipeDeck/renderCards如
2017-07-10 13:40:50
985
原创 react native组件通信方式
1:父组件给子组件通过props2: 通过回调父组件传递一个函数 子组件将执行结果回传给父组件3:通过ref方式引用组件调用方法,传递参数。4:通过广播事件监听DeviceEventEmitter 注册监听事件5:如果使用redux 通过getstate获取全局唯一状态树异步与原生通信: react与native异步交互的几种方式
2017-06-30 11:09:29
932
空空如也
Android popwindow 设置位置为bottom 被底部导航栏挡住怎么解决啊
2015-12-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人