2016-04-28 38 views
2

在Redux商店的狀態中包含React元素是可取的甚至可能的嗎?既然它是一個簡單的對象,描述「應該繪製什麼」,我想它應該是安全的,但仍然:在那裏的任何經驗?在Redux狀態下存儲React元素:反模式?

爲什麼我想要做這樣的事情?我正在寫一個能夠嵌入其他組件的抽象React組件,在React樹的其他地方描述過。例如,這將允許它們擺脫硬件加速的CSS節點的物理邊界,用於提高性能。

+0

是的。國家應該是可以序列化的。 – zerkms

+1

實際上React元素不能序列化,因爲'$$ typeof'持有一個'Symbol'。 – Florent

回答

4

是的 - 與其他許多類似的想法一樣,它可能是,但它絕對是一種反模式,因爲它打破了做時間旅行調試(Redux的核心賣點之一)的能力。有關更多詳細信息,請參閱http://redux.js.org/docs/FAQ.html#organizing-state-non-serializable上的Redux FAQ。

現在,將React組件類保留在React組件的內部狀態中是不同的,並且可能對於動態需要組件和重新呈現實例一旦下載之類的情況有用。

+0

它確實打破持久性/水合作用(沒有測試過,因爲我不需要它),但沒有時間旅行。請參閱[this fiddle](https://jsfiddle.net/yprpq1cu/4/) - 無法檢查jsfiddle中的時間旅行(Redux DevTools在那裏不工作),但它在本地工作。 –

相關問題