【发布时间】:2021-01-04 06:29:21
【问题描述】:
请在codesandbox上查看完整代码。
我的国家/地区 api 应用程序有两个 Route 组件-
<>
<Header/>
<Router>
<Switch>
<CountriesDataProvider>
<Route path='/' exact component={HomeRoute} />
<Route path='/detail/:countryName' component={DetailsRoute} />
</CountriesDataProvider>
</Switch>
</Router>
</>
当我在HomeRoute 上单击一个国家/地区时,每个国家/地区的DetailsRoute 会完美显示所有信息。但是当发出直接 http 请求或刷新DetailsRoute 时,我看到了这个错误-
/src/comps/Details/DetailsRoute.jsx
无法读取未定义的属性“边框”
发生就行了-
const promises = country[0].borders.map(fetchNeighborName);
country[0] 是从countriesData 中提取的,似乎是undefined-
const {countriesData} = React.useContext(CountriesDataContext);
这不是BrowserRouter 的问题,因为DetailsRoute 组件会渲染但缺少信息。
我不知道当 直接 url 请求 发送到 DetailsRoute 组件时是什么逻辑错误导致它无法工作?请告诉我解决方法!
【问题讨论】:
-
@MehmetAliPeker 我无法将其与我的问题联系起来。我在
CountriesDataContext中设置断点 时看到的问题是,在重新加载时,componentDidMount不执行,这就是我获取国家/地区数据的地方。
标签: javascript reactjs use-context