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中的規范,那樣會使數據處理的邏輯復雜很多。