[英]using prop value in useState hook gives undefined value
有一個 React 組件,它使用 props 中的鈎子設置 state。
道具存儲步驟。 prop 值用於在掛鈎中設置狀態。
但是 state 設置為 undefined,即使 console.log 說 prop 有一個數值
line 41 console.log(storedStep)
const [activeStep, setActiveStep] = React.useState(1);
const [activeStep2, setActiveStep2] = React.useState(storedStep);
line 44 console.log(activeStep)
line 45 console.log(activeStep2)
這是用於材料ui步進器https://material-ui.com/components/steppers/
我正在設置 Stepper https://codesandbox.io/s/qhhv1?file=/demo.js步進器的活動步驟 步進器演示中的示例不使用道具來設置活動步驟,而是將其設置為0。
定義了 storedStep 的位置。
它在直接父組件中定義。
我在直接父母中使用另一個鈎子
const [projDetail, setProjDetail] = useState({});
並在此父級的 useEffect 中傳遞 setProjDetail function
useEffect(() => {
async function fetchData() {
await getDetailFunc (email, projectid, setProjDetail);
}
fetchData();
}, [email, projectid,getDetailFunc]);
getDetailFunc 將獲取詳細信息並使用 setProjDetail 設置 projDetail
storedState 是傳遞給子進程的 projDetail 的屬性
storedStep={projDetail.requeststatus}
storedStep 在某個點(第 41 行)正確獲取值 0。 但無法將其設置為 activeStep(第 45 行)
在我的情況下,我通過僅在檢查屬性“requeststatus”是否存在后才在父組件中渲染子組件來解決此問題
if (projDetail.hasOwnProperty("requeststatus")) {
.....
...
<Stepper
steps={steps}
storedStep={projDetail.requeststatus}
saveStageFunc={saveStageinDynamo}
updateKey={{ email, projectid }}
labelArray={processStates}
/>
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.