【发布时间】:2021-08-13 12:44:12
【问题描述】:
我正在创建 React 实践项目,但我仍在处理这种错误(对象作为 React 子对象无效)。更多在下面的屏幕截图中。
您也可以在该屏幕截图中看到代码的问题部分。
一些解释:这段代码是useEffect中的一部分(只有在fixturesIds不是未定义的情况下才会执行这个useEffect内容)。然后一些 get 请求被推送 到数组 predictionList 中,并在 Promise.all 中一起解析。 Promise.all 返回一个数组,我将其映射以获取所需的数据。这一切 (prediction.value.data) 被设置为一个状态 (setFixturesDetails)。
Prediction.value.data 看起来像:[{..}, {..}, {..}, {..}]
当我将它登录到控制台时,它运行得非常好。
但是当我尝试在组件中使用这个对象数组作为道具时(见下文)...
return (
<div className='App'>
{fixturesDetails.length > 0 ? (
fixturesDetails.map((details) => (
<Prediction
homeTeam={details.teams.home.name}
awayTeam={details.teams.away.name}
winner={details.predictions.winner}
/>
))
) : (
<h2>Loading</h2>
)}
</div>
...它已经开始抛出一个提到的错误。
加载中出现正常并且崩溃当设置fixturesDetails(fixturesDetails.length > 0 为真) ,
所以不是显示预测组件,而是显示错误。
任何想法为什么会引发该错误?我研究了很多,但我仍然无法弄清楚。
谢谢!
【问题讨论】:
-
当您在控制台登录
fixturesDetails.map((details) => (<Component/>))时会得到什么。您能否也显示您的预测组件代码 -
听起来是
Prediction组件的实现存在问题
标签: javascript reactjs promise axios use-effect