react native + redux使用新得

reducer类型要合理划分

  • 不相关的state变化分为不同的reduce,比如一个是数据处理,一个是编辑状态的更新;
  • 每个reducer中的类型要划分合理,最好是一个type能完成你期望的数据更新,比如状态改变,新增,删除;
    若是一个期望的state变化涉及到不同的数据类型,可以划分不同的type,比如更新激活状态的同时要清除数据;

listview中inputText键盘遮挡问题

  • 临时解决方案:监听键盘动作,show的时候重新设置listview的高度和contentoffset。
  • 键盘遮挡问题是个共性问题,需要考虑通用解决方案,现在github上一种解决方案但是不支持比较新版本的rn,可以再其基础上改进

关于switch

  • rn原生的switch,android上不支持修改样式,ios上仅支持修改颜色等,不能满足自定义颜色和大小的要求。
  • github上有一个改进的switch方案(react-native-material-switch),但是在切换状态过程中的背景颜色的变化处理比较生硬,因此,自己实现通用switch

关于优化代码逻辑

  • 写代码过程,是一个越写越多,然后越写越少的过程。
  • 写到一定程度,会突然灵光一闪,这部分的逻辑完全可以精简,使逻辑清晰明了。

关于对象地址

  • java和js中对象都是引用关系,因此判断连个object是否相同,最直接最简单的方法就是判断其引用地址是否相同。
  • 这样也可以减少很多判断,或者索引取值的逻辑

充分理解redux的精髓,

  • 只关注与数据的状态改变,用数据的改变去影响view的改变,完全分隔view之间的关联

不要为了硬套redux规范而牺牲逻辑

  • 在component中是可以写一些封闭的数据处理逻辑的,但得保证这部分逻辑外部不会用到。
  • 不用死守数据逻辑必须写在action或者reducer中的规范,那样会使数据处理的逻辑复杂很多。

你可能感兴趣的:(react native + redux使用新得)