Ramda的队列

问题 一个固定不变顺序的环形队列,需要从任意位置顺时针或逆时针转圈站位。 思路 将队列放入数组,移动时数组头部第一个出列移到数组尾部,或尾部最尾一个出列移到数组头部,顺时针或逆时针等效于数组反转后再移动。 实现 用Ramda带来的对List的相关操作可解决问题,进行如下测试: test('ramda(队尾那个跑到对头)', t =>{ let troops = ['戊', '己', '庚', '辛', '壬', '癸', '丁', »

Ramda里的透镜

Ramda里的lens(透镜)在对数组的项或对象的键进行操作时非常有用,让我们从一个测试开始: test('ramda(lens透镜)', t =>{ let obj = {x: 1, y: 2} const lensObj = R.set(R.lensProp('z'), 3, obj) const »

升级react-native小记

因为测试中的app深度依赖native-base组件库,将该库升级到0.5.18版本的时候,app启动弹出红屏,发现需要关联升级react-native到至少0.38.0版本,该项目依赖关系已经比较复杂,升级react-native还是小心为妙。 稳妥起见,用git将项目先备份好再动手升级react-native,依照官方升级文档来操作。 打开项目的package.json文件,将react-native改到需要的版本号(或最新的版本号) 运行npm install 哦哦,npm提示react-native又提示需要升级react,好吧,再改package.json文件,更新react的版本号到最新,重运行npm »

试玩Next.js

Next.js是已经开源的又一个基于React的JS App框架,类似于 create-react-app,带来一些比较酷的特点: 基于文件系统的路由 代码拆分 服务器端渲染 无需复杂的配置 容易部署 看文档很容易上手,今晚抽空试玩一下: 建立项目目录 mkdir myNext 在目录下初始化package.json npm init 安装Next.js npm install next --save »

tcomb表单的自定义工厂

问题场景 在react-native应用中填写表单时涉及输入跨度很大的日期和时间,希望点击输入框后能弹出可滑动选择的日期和时间输入界面,而不是弹出不好掌控的键盘输入界面。效果如图: 思路 1、使日期和时间输入栏能响应点击或触摸手势; 2、响应后弹出一个半透明的模态层; 3、关闭模态层时将结果数据传给日期栏或时间栏。 解决方案 用tcomb表单组件就可以解决该问题,但tcomb原生组件对日期字段和时间字段的响应是弹出安卓底层的日期和时间选择器,该选择器满足不了跨度很大(公元前几千年日期)的日期输入,比如天文纪年的负数年份安卓的日期选择器就无法输入,安卓的日期选择器长相是这样: 既然tcomb原生组件也没办法那就自定义一个吧,好在tcomb有个强大的自定义工厂,仔细阅读它调用react-native日期选择器的源码,就大体知道自定义工厂的流程了,要实现这种弹出模态层的表单字段,要点有这些: »