【发布时间】:2020-11-28 08:58:40
【问题描述】:
拥有一个使用来自 props 的钩子设置状态的 React 组件。
道具存储步骤。
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 步进器演示中的示例没有使用 prop 来设置活动 Step,而是将其设置为 0。
storedStep 的定义位置。
在直接父组件中定义。
我在直接父级中使用了另一个钩子
const [projDetail, setProjDetail] = useState({});
并在这个父级的useEffect中传递setProjDetail函数
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 行)
【问题讨论】:
-
显示
storedStep的定义位置? -
请提供Minimal, Complete, and Reproducible 代码示例和一组步骤来重现您的问题。
标签: reactjs react-hooks react-props