簡體   English   中英

react props 如何合並從父組件傳遞的 state 和 redux 存儲

[英]how does react props merge state passed from parent component and redux store

我的情況是,我的子組件需要獲得一個名為 myDepartment 的 state。 如果我使用@connect 從 redux 獲取該變量(假設這里的值是'deptA')並從父組件道具傳遞另一個具有相同名稱的變量(值為'deptB'),那么 myDepartment 在子組件?

使用connect映射的道具會覆蓋從具有相同名稱的父級傳遞的道具。 因此,在您的示例中, myDepartment始終具有值deptA

只是為了澄清一些代碼:

const MyComponent = connect((state) => ({
  myDepartment: state.myDepartment // 'deptA'
}))((props) => (
  <div>{props.myDepartment}</div>
))

// always renders <div>deptA</div>
const Wrapper = () => (
  <MyComponent myDepartment="deptB" /> 
)

嘗試過之后,看起來 redux 會優先於父母:

https://codesandbox.io/s/aged-violet-uoeg6?file=/src/App.js

但是,如果您要使用新的 useSelector react-redux 鈎子(而不是連接)不是解構道具,它們將作為 sharedProp 和 props.sharedProp 共存(沙盒中的 ChildTwo 示例)。 如果你將 props 解構為 {sharedProp},那么你將無法創建一個名為 sharedProp 的變量來存儲 useSelector 返回。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM