[英]I made an API call fetching data from it on a React component and passed it on to a state. I want to use the same data on another component too
[英]React: How to use getDerivedStateFromProps() to set component state. It interferes with controlled component that uses the same state variable
我有一個接收變量作為道具的組件。 getDerivedStateFromProps() 是典型的,這意味着當 nextProps.someProp 不等於 prevState.someStateVar 時,該道具被分配給狀態變量。
我還有一個 Controlled 元素 - 一個 HTML 文本輸入元素,它與相同的狀態變量相關聯。
問題是,當我通過受控元素更改狀態變量時, getDerivedStateFromProps() 執行並將值設置回之前收到的道具。
作為 React 新手,我不明白為什么會發生這種情況。 上面的動作應該只在接收到一個新的 props 值時發生,就像名稱“nextProps”所暗示的那樣。
請建議如何獲得所需的行為:
文章 - “你可能不需要派生狀態”是真的。
https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
我提到了受控組件電子郵件示例。
現在,所有子組件的數據都存儲在父組件的狀態中。 父組件的狀態作為道具傳遞給子組件。 父組件中的方法編輯狀態變量。 此方法作為道具傳遞給子組件。
因此,建立了單一事實來源並將其存儲在父組件中,使其子組件完全受控。 我就是這樣做的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.