我遇到了這種情況,我不得不將父項容器組件中的道具傳遞給子容器組件,以便子容器中的表示組件具有初始狀態。是否有另一種方法來解決這個問題?這是不是皺起了眉頭?Redux - 將道具傳遞給兒童容器組件可以嗎?
回答
Redux是否正在使用父容器中的數據(您所說的數據爲「from rails」)?如果不是,那麼這是你真正的問題。 Redux應該是反應容器的唯一信息來源。反過來,Redux應該接受來自Rails應用程序的信息並將該信息存儲在其全局狀態中。
一旦你達到了這個目標,你現在就有了一個真實的信息來源,將所有信息輸入到React容器中。
如果子組件需要任何信息,它應該從父容器的redux狀態信息中接收它們。
可以有嵌套的子組件。只需繼續將信息從1層傳遞到下一層。例如。從Redux接收name
的ContainerA可以使用name={this.props.name}
呈現ComponentX,然後ComponentX可以再次使用name={this.props.name}
呈現ComponentY。這導致ComponentY通過父組件和容器傳遞來自Redux的信息。
您的應用程序自然應該具有比容器多得多的組件。這是好事。組件本質上是可重複使用的,因爲它們僅與數據形狀相關聯,而不是數據源。謹慎使用容器,並且僅在您想要將特定信息插入一系列組件時使用。
謝謝,這有幫助。當你說'ContainerA,它接收來自'redux'的名字,你的意思是通過'getState()'接收它嗎?我可能會錯過一些東西,但我的印象是,mapStateFromProps'只會在動作分派時觸發。 – linuxNoob
你應該使用'mapStateFromProps',而不是''getState'手動。你是對的,這隻會在調度中觸發,這反過來意味着你應該通過調度來使用軌道信息以將其存儲在Redux中。根據你如何從rails中檢索它將決定你如何這樣做,但目標應該是通過相同的數據流路由所有內容,這意味着所有傳入的數據都應該導致redux調度。 – gravityplanx
- 1. 如何將道具傳遞給兒童React組件?
- 2. 將道具傳遞給普通兒童
- 3. 將道具傳遞給react-redux容器組件
- 4. 將道具傳遞給兒童的主要組件(React Native)
- 5. 如何將道具傳遞給React中的兒童組件
- 6. 反應路由器:將道具傳遞給兒童
- 7. 反應路由器:將道具傳遞給兒童
- 8. 將狀態傳遞給兒童組件作爲道具不工作
- 9. 停止道具被傳遞給帶風格元件的兒童
- 10. 將道具傳遞給子組件
- 11. React/Redux將道具傳遞給主要組件
- 12. 將反應路由器中的道具傳遞給服務器上的兒童
- 13. 將容器組件中的道具傳遞給嵌套的路由組件
- 14. 根據零件類型有條件地將道具傳遞給兒童
- 15. 通過道具傳遞父組件的當前狀態給兒童
- 16. vue2:是否可以將多個道具傳遞給組件?
- 17. 傳遞道具給兒童使用路線
- 18. 將道具傳遞給子組件Cyclejs
- 19. 無法將道具傳遞給組件
- 20. React - 將動態值傳遞給兒童
- 21. 你可以通過一個組件通過道具兒童
- 22. 我們可以給兒童組件分配原型嗎?
- 23. 傳遞道具反應,路由器4.0.0兒童路由
- 24. Redux:將組件動態傳遞給Provider
- 25. VueJS將道具傳遞給渲染函數調用中的兒童
- 26. React Native - 是否可以將道具中的組件傳遞給其他組件?
- 27. 反應 - 將道具傳遞給道具上的組件
- 28. 什麼道具可以傳遞給Navigator.push
- 29. 將容器放入Redux組件中可以嗎?
- 30. 將點擊道具傳遞給子組件
你能更具體嗎?爲什麼兒童組件需要道具的「初始狀態」?爲什麼這取決於這些道具是來自父母的環境還是減少? – gravityplanx
我有一些數據從rails服務器傳遞到父容器組件。我需要將這些數據傳遞給子容器組件,然後傳遞給愚蠢的視圖。我是否僅僅通過發送的道具派發一個動作並更新初始狀態?但是,即使這樣我也必須將它傳遞給子容器。 – linuxNoob
如果我將它作爲redux狀態的一部分進行更新,我不必將其最後一條語句放棄。 – linuxNoob