複雜表單分組以及遞歸失去焦點bug覆盤

場景

在問題列表中,標準化問題以後,在子問題是輸入框修改提交時,須要向上修改列表以及全局的答案對象,而這一過程當中可能會致使輸入框的丟失焦點的問題。
前端

存在的問題點或者風險點


1 每次修改都要改全局的答案對象,可是在某些特殊題目,好比輸入框帶有圖片類型的時候,會是經過key修改變量的方式,而不是純函數編程思路的返回新對象。
2 問卷中的題目都是利用的受控組件,層層遍歷致使組件的修改值的性能比較低,建議使用非受控組件,自身支持修改,而後同步給store和父組件
3 組件具備交互行爲特色時,它的狀態不單單依賴於傳入的數值,還有交互行爲,而這些通常狀況下咱們是不作設計的,會致使交互的問題。
react

總結點


在遞歸複雜數據的時候,針對每一個遞歸的子組件的狀態不單單包括它的數據,還有一些交互狀態,好比說焦點,滾動位置等,通常狀況下針對這些咱們是不作這些交互行爲數據存儲的,或者作了也會由於細節致使最終效果有些差別。因此在改變數據的時候:
編程

  • 要注意用純函數的方式每次都要從新賦值,而不是用指針改變值,用指針改效果上值的改變的,但在原理上與複雜數據直接用拼裝的新數據是不一樣的
  • 針對組件須要具備除常規數據以外的狀態時,須要在這個組件或者高級的容器角度爲其加key,而且這個key要保證一致不變性。
  • 針對前端須要的一些數據模型增刪改的操做,index是不許確的,這種狀況下建議前端自定義每項的id,能夠用隨機數,能夠用hash,來保證正常的dom操做的正確性。

同步語雀文章

原文連接:www.yuque.com/robinson/de…dom

相關文章
相關標籤/搜索