我有一个名为 [id].js 的页面
该页面有一个获取博客文章 id 的函数:
function BlogPost() {
const router = useRouter()
const blogId = router.query.id
}
而且它还有一个 react 组件,需要从这个函数中取值来获取数据。该变量位于获取请求 URL 中。
class Home extends React.Component {
state = {
post: {},
isLoaded: false
};
componentDidMount() {
fetch(`http://localhost/wordpress/index.php/wp-json/wp/v2/featured_item/${blogId}`)
.then(postsResponse => postsResponse.json())
.then((post) => {
this.setState({
post,
isLoaded: true
})
})
}
render() {
const { post, isLoaded } = this.state;
if(isLoaded){
return (
<motion.div initial="initial" animate="enter" exit="exit" variants={portfolioVariants}>
<Posts post={post}/>
</motion.div>
)
}else{
return(
<Loader />
)
}
}
}
如果我把实际的博客文章 ID 放在获取 URL 的末尾,说“33”,它可以正常工作,但是如果我把 BlogPost() 函数中的一个变量放在那里,它会说“没有定义 blogId”。
所以问题是:如何将这个变量传递给组件?
UPD
我按照评论中的建议做了,它只是给出了同样的错误。也许我做错了什么。
class Home extends React.Component {
state = {
post: {},
isLoaded: false,
id: blogId
};
componentDidMount(blogId) {
fetch(`http://localhost/wordpress/index.php/wp-json/wp/v2/featured_item/${this.state.id}`)