我試圖圍繞高階組件包裝我的頭,這些與Redux容器組件相同。另外推薦的方式是通過擴展React.Component的類或者在redux站點中沒有的類來編寫更高階的組件(容器組件)。Redux高階組件與容器組件相同
1
A
回答
1
關於這個問題寫了so much,所以我只想簡單地解釋一下這個概念以及它如何與Redux相關。
您可以將HOC視爲增強器(或「裝飾器」)。它需要一個現有的組件並返回一個新的,改進的組件。常見的任務是:注入道具,組成,改變它呈現的方式等。
它通常作爲一個函數實現:獲取一個組件,產生另一個組件。模式可能會有所不同,取決於您的目標和需求。
你可以擴展包組件:
function hoc(WrappedComponent) {
return class HOC extends WrappedComponent {
render() {
return super.render();
}
}
}
或撰寫的包裹組件:
function hoc(WrappedComponent) {
return class HOC extends React.Component {
render() {
return (<WrappedComponent {...this.props} extraProp={1} />)
}
}
}
,如果你想使事情變得簡單,不需要完整的生命週期,您也可以使用無狀態組件:
function hoc(WrappedComponent) {
return (props) => (<WrappedComponent {...props} extraProp={1} />);
}
我建議您閱讀this以獲得更深入的瞭解。現在
,這個概念是不是加上終極版,但終極版不使用它。
connect()
實際上是一個HOC,在包裝組件和商店之間進行連線(注入道具並負責重新渲染)。它需要您的表示組件並返回一個連接組件。
容器(「連接」)組件實際上是增強組件。
所以要說清楚:Post
是一個組件,我們使用HOC connect()
來創建增強組件PostContainer
。
相關問題
- 1. 在Redux容器中使用更高階的組件
- 2. Redux演示組件VS容器組件
- 3. Redux:單容器,多組件
- 4. React Redux容器組件
- 5. React高階組件
- 6. React高階組件Vs父組件
- 7. 陣營與同一容器/ Redux的多個組件
- 8. 組合Redux減速器與同一組件的不同實例
- 9. Redux - 相同的減速器,容器和組件產生不同的結果
- 10. 瞭解React高階組件
- 11. 裝飾進口陣營組件與高階組件
- 12. 混淆react-redux和容器/組件
- 13. SAP PI組件與不同階段/ ENV
- 14. Redux,針對不同初始狀態的高階降階器?
- 15. 陣營高階組件初始道具
- 16. React JS - TransitionGroup和高階組件
- 17. 將ES5 Mixins轉換爲高階組件
- 18. 高階組件:React.createElement:類型無效
- 19. Typescript:高階組件的類型定義
- 20. 如何從組件到容器中的事件React Redux
- 21. 驗證React-Redux中「容器組件」中的觸發事件
- 22. Redux。從容器組件描述表示組件的生命週期方法
- 23. 在Redux中編寫高階縮減器
- 24. Redux:當子組件調度Redux動作時通知父組件React組件
- 25. React-Redux中的相同組件的多個實例
- 26. 組件中的混合狀態與redux
- 27. 將React videojs組件的狀態與Redux相結合
- 28. C#組件容器
- 29. EXTJS動態把一個組件與其它組件的容器
- 30. React-Redux:組件或容器中的表單?
爲了澄清它似乎暗示的答案是,雖然Redux鼓勵容器本身是HOC的,但它不應該阻止你在Redux容器上寫一個HOC,如果它有意義的話 - 是正確的嗎? (這也是我很好奇的) – aug
@aug我認爲容器是HOC的*輸出*會更準確。您絕對可以使用多個HOC來增強組件,無論它是否爲容器。 –