首页 > 解决方案 > 无法访问函数中的道具

问题描述

const OrderComplete = ({
stage
}) =>

const someFunction = () => { console.log(stage) }

useEffect(()=> setTimeout(()=>someFunction(),1000),[])
...

我得到未定义阶段的价值。但是,如果我使用反应开发工具并查看组件道具,例如

组件中的值

在此处输入图像描述

在此处输入图像描述

标签: reactjsreact-hooks

解决方案


您应该使用以下依赖数组useEffect

const OrderComplete = ({
stage
}) =>

const someFunction = () => { console.log(stage) }

useEffect(()=> setTimeout(()=>someFunction(),1000),[someFunction])

因为如果你传递一个空数组,回调只会在初始渲染时生效,此时stage道具可能是undefined


推荐阅读