В реакт приложениях для хранения данных используется библиотека redux, сами запросы надо делать в действиях(action), для того чтобы бороться с асинхронностью и правильно делать запросы используй redux-thunk или redux-api-middleware, если в body ответа от сервера ты получаешь не те данные которые тебе надо, то это проблема именно на сервере. У тебя должен быть эндпоинт /api/user/:id где ты можешь получить юзера, и в обьекте юзера должен быть post_id c id поста, и ты бы мог получить его например на /api/post/:id, но если тебе надо сделать на скорую руку делай без редакса и в ComponentDidMout через fetch стягивай данные, в es6 будет что то такое
constructor(props) {
super(props);
this.state = {
post: {
user: {}
}
}
}
ComponentDidMount() {
const { postID } = this.props;
let data = fetch('localhost:3000/post/' + postID)
.then((response) => {
this.setState({post: JSON.stringify(response.json)}, (prevState) => {
fetch('localhost:3000/user/' + prevState.post.user_id)
.then ((response) => {
this.setState({ ...prevState, user: JSON.stringify(response.json)});
});
});
});
}
render () {
return (
<div>
{this.state.post.user.name}
</div>
)
}
еще надо заметить что на сервере должно быть разрешение CORS Для этого клиента