Reactjs 无法从从从contentful获取数据的操作创建者访问嵌套数据

Reactjs 无法从从从contentful获取数据的操作创建者访问嵌套数据,reactjs,redux,state,Reactjs,Redux,State,所以我试图通过react-redux的connect从组件访问状态。该状态来自一个从Contentful api获取数据的异步操作。我很确定这是因为我正在用article:action.article(此action.article具有嵌套数据)替换状态中的article:{} 以下是组件: import React,{Component}来自'React'; 从“react markdown”导入react markdown; 从'react redux'导入{connect}; 从“../

所以我试图通过react-redux的connect从组件访问状态。该状态来自一个从Contentful api获取数据的异步操作。我很确定这是因为我正在用article:action.article(此action.article具有嵌套数据)替换状态中的article:{}

以下是组件:

import React,{Component}来自'React';
从“react markdown”导入react markdown;
从'react redux'导入{connect};
从“../../actions/blog.actions”导入{getArticle};
类ArticlePage扩展组件{
建造师(道具){
超级(道具);
}
componentDidMount(){
this.props.getArticle(this.props.match.params.id)
}
render(){
设{article}=this.props;
返回(
{console.log(this.props.article)}
)
}
}
函数MapStateTops(状态){
返回{
文章:state.blog.article
}
}
功能图DispatchToprops(调度){
返回{
getArticle:(articleId)=>{
调度(getArticle(articleId));
}
}
}

导出默认连接(mapStateToProps、mapDispatchToProps)(ArticlePage)在redux商店中设置文章时,您正在设置

article: article.items[0].fields
虽然您试图从
this.props.article.fields
访问字段,但在字段下有一个名为authorImage的字段,该字段又包含字段键,因此您必须使用

this.props.articles.authorImage.fields

在使用前还要检查
undefined
属性,因为它最初可能不存在,并且只会在异步请求时填充

在使用数据之前添加对undefined的条件检查,因为您正在调度一个异步操作,所以我刚刚意识到我正在执行两个异步操作,首先按文章id搜索,然后按文章负载中图像资产的链接分辨率搜索。所以我试过这篇文章?但我实际上需要做的是这个.props.article.authorImage。感谢您的快速回复,如果您将您的答案转换为正确答案,我会将其勾选为正确答案,这样每个资源(文章中的主要文章和img)都有一个fields属性(它描述了各种内容)。这就是您在操作和组件中看到它的原因。未定义的检查起了作用。@Shubham说,对了,您的组件中已经有了作为项目的fields对象,您需要决定要传递给组件的内容。另外值得注意的是,您在reducer中将项目初始化为数组,而您修改了在获取article@Aditya因此,我在组件中尝试了this.props.articles.authorImage.fields,它说它未定义。我给getArticleSuccess>>article.items[0]。fields@R.Thompson我明白了。误读了文章。项[0]。活动中的字段与authorImage下的字段相对应