Я довольно новичок в реагировании / редукции, и у меня возникла непредвиденная проблема, которую я не могу понять
Я получаю конкретную статью из избыточности, действие запускается, когда я загружаю правильнуюстр.Я вижу в инструментах redux dev, что статья правильно загружена в state.article
все работает нормально.
Редуктор (упрощенно):
const initialState = {
article: null,
loading: true,
};
export default function(state = initialState, action) {
const { type, payload } = action;
switch (type) {
case GET_TARGET_ARTICLE:
return {
...state,
article: payload,
loading: false
};
}
Действие:
export const getTargetArticle = slug => async dispatch => {
try {
const res = await axios.get("api/article/" + slug);
dispatch({
type: GET_TARGET_ARTICLE,
payload: res.data
});
} catch (err) {
...
}
};
Вот что должен иметь объект article:
article: {
title:"",
content: "",
comments:[],
}
Проблема: Как я уже сказал, state.article
заполнен правильно, и я могудоступ title
и content
.Но когда я пытаюсь получить доступ к комментариям, я получаю неприятный Cannot read property 'comments' of null
.Есть идеи почему?
Вот как я могу это отобразить, если это поможет:
const Article = ({ getTargetArticle, article: { article, loading }, match }) => {
useEffect(() => {
getTargetArticle(match.params.slug);
}, []);
let commentsList = article.comments.map((comment, index) => (
<Fragment>{comment.title}</Fragment>
));
return (
<Fragment>
{article && article.title}
{commentsList}
</Fragment>
);
};
Большое спасибо