【发布时间】:2020-05-20 01:55:25
【问题描述】:
我正在尝试渲染标题。
首先,在 InnerList.js 中,我进行 API 调用,并使用来自 API 调用的数据,在上下文中设置一个列表。
其次,在 Context.js 中,我获取列表并将其设置为特定数据。
然后,在 InnerListHeader.js 中,我使用特定数据在标头内呈现。
问题:我目前得到一个未定义的 TypeError,因为在渲染之前没有设置上下文。有没有办法在加载之前通过异步或其他方式等待数据设置?
我的代码块在下面。我一直在查看有关 StackOverflow 和博客的很多问题,但无济于事。谢谢!
InnerList.js
componentDidMount() {
const { dtc_id } = this.props.match.params;
const {
setSpecificDtcCommentList,
} = this.context;
MechApiService.getSpecificDtcCommentList(dtc_id)
.then(res =>
setSpecificDtcCommentList(res)
)
}
renderSpecificDtcCommentListHeader() {
const { specificDtc = [] } = this.context;
return (
<InnerDtcCommentListItemHeader key={specificDtc.id} specificDtc={specificDtc} />
)
}
上下文.js
setSpecificDtcCommentList = (specificDtcCommentList) => {
this.setState({ specificDtcCommentList })
this.setSpecificDtc(specificDtcCommentList)
}
setSpecificDtc = (specificDtcCommentList) => {
this.setState({ specificDtc: specificDtcCommentList[0] })
}
InnerListHeader.js
render() {
const { specificDtc } = this.props;
return (
<div>
<div className="InnerDtcCommentListItemHeader__comment">
{specificDtc.dtc_id.dtc}
</div>
</div>
);
}
【问题讨论】:
标签: javascript reactjs react-hooks react-context