React-组件在通过useEffect改变prop渲染后不更新


const [Paid, setPaid] = useState(false);
const fetchTransaction=async()=>{
const data=await response.get();

if (data.docs[0].data().status === "COMPLETED") {
setPaid(true)
}

}
useEffect(() => {
fetchTransaction();
}, [])
useEffect(() => {
RouterCourse = () => {
return (
<CourseRoute path="/course" component={Course} pay={Paid}/>
)
}
}, [Paid]);
var RouterCourse = () => {
return (
<CourseRoute path="/course" component={Course} pay={Paid}/>
)
}
return(
<div>
<Router>
<Switch>
{RouterCourse()}
</Switch>
</Router>
</div>
)

因此,在包含自定义PrivateRoute组件的Routercourse函数中,添加了一个名为Paid的变量。这个变量是用钩子定义的。通过异步函数fetchTransaction (false到true)更改Paid,但不使用新值(true)。如何在返回的{RouterCourse()}中更新使用过的值?

我发现你可以定义另一个状态它最初是一个带有false的组件然后在useEffect中使用setState将该组件更改为https://i.stack.imgur.com/306pw.png上传这张图片可能会对你有所帮助这与你的问题类似