Я учусь реагировать с использованием избыточности и хочу добиться чего-то подобного:
Когда я перехожу на этот URL:
some_url / posts / 1
Iхочу получить с моего сервера некоторые данные и затем показать их на странице.
Однако он выдает исключение нулевого указателя, поскольку для получения данных требуется некоторое время.
Я сделал что-то подобное, но это выглядит не очень хорошо, как правильно предотвратить исключение этого нулевого указателя и ждать, пока не будут получены данные?
Внутри моего компонента:
componentWillMount() {
this.props.fetchPost(
parseInt(this.props.match.params.postId));
}
render(){
return(
<div>
{post.title}
</div>
)};
Мой создатель действий:
export function fetchPost(postId){
const request = axios.get(`${ROOT_URL}/posts${postId}`);
return {
type: FETCH_POST,
payload: request
};
}
И редуктор, здесь я просто заполнил состояние пустым шаблоном объекта, который предоставляет сервер.Без этого я получил NullPointerException.
import { FETCH_POST } from "../actions";
export default function(state = {id: 0, title: "", infos: [{id: 0, content: "", authorId: 0}]}, action){
switch(action.type){
case FETCH_POST:
return action.payload;
}
return state;
}
Как правильно ждать поступления данных?