У меня есть страница с именем [id] .js
На странице есть функция, которая получает идентификатор сообщения в блоге:
function BlogPost() {
const router = useRouter()
const blogId = router.query.id
}
И она также имеет компонент реагирования,который должен получить значение из этой функции для извлечения данных. Переменная находится в 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 />
)
}
}
}
Если я добавлю фактический идентификатор сообщения в блоге, говоря «33» в конце URL-адреса выборки, он будет работать нормально, но если я добавлю туда переменную изфункция 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}`)