這是demo截圖,剛寫不久。我要做的是把“go home”這個卡拖到右邊的doing stage。過程:拖放結束之后dragula這個庫(做拖放的庫,其實哪個庫不要緊,關鍵是我做了一些操作之后他更改了DOM)把左邊那張卡的DOM刪除,然后在右邊的doing stage下面添加“go home”的DOM。然后我觸發一個action,把TODO的數組減少一項,把DOING的數組添加一項(mobx的action,但我覺得redux也是同樣的道理),修改store,然后卡片區的組件就會重新渲染。但是這樣就報了錯誤:Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.我查閱之后找到這里的解釋:https://github.com/facebook/r...,關鍵就是這句“you can’t expect that you can both change the DOM arbitrarily and re-render it with React at the same time.”然后在組件中shouldComponentUpdate返回false倒是解決了問題,但是后面更新的時候就是麻煩事了。我覺得這里最合適的辦法就是mvvm框架那種雙向綁定,非常方便。但是如果使用react來做,大家覺得如何處理比較好?
業余使用react做類似于trello那種任務管理工具遇到的問題?
蠱毒傳說
2018-10-02 13:33:02