javascript - 在 useEffect 完成之前组件命中重定向
问题描述
我有一个useEffect
在端点上运行提取的设置,并且根据它取回的数据,我想显示我的组件或重定向到其他地方。
我发现的问题是代码在我的 useEffect 完成之前运行,所以我总是被重定向......
我还能做些什么来达到预期的效果吗?
伪代码
const myComp = () => {
useEffect(() => {
/*
* I will do my API call here which will set my
* variables 'isLoading' and 'myLoadedConditional' via redux
*/
}, []);
if (isLoading) return <h1>Still loading</h1>
return myLoadedConditional
? <MyComponent />
: <Redirect to={`/some-link`} />
}
解决方案
useEffect 在渲染后运行,因此如果 myLoadedConditional 为 false,则使用当前代码,它将始终使用 Redirect 组件
推荐阅读
- arrays - 在 Julia 中求解 ODE 系统,初始条件为二维数组
- android - RenderScript 在 macOS Catalina (10.15) 上损坏
- vue.js - Vuetify 网格定位
- java - Java如何访问文本字段
- css - CSS:元素具有“显示:块”并且不开始新行
- angular - Angular Service Worker - 在 dist/styles.*.css 上 PurifyCSS 之后的哈希不匹配
- postgresql - 如何选择具有不同条件的同一列
- html - 添加了一个全局宽度我希望一个特定元素超过该宽度限制
- php - 在 Laravel 5.8 中检查日期
- python - Elasticsearch 无请求模糊查询