reactjs - 导航回组件时阻止 API 调用
问题描述
我有以下组件:
App
: 根组件,它包含到使用 React Router DOM 的其他组件的路由。MovieScreen
,访问时显示movies/:id
。LoginScreen
,当用户需要在执行操作之前登录时显示。
考虑这种情况:
用户访问
/movies/awesome-movie
。MovieScreen
渲染组件并根据 ID 获取并显示电影数据。加载发生在useEffect()
.用户尝试执行需要身份验证的操作,例如将电影标记为已观看。为了进行身份验证,我显示了一个指向 的链接
LoginScreen
,如下所示:
<Link to="/login">
<Button>Login</Button>
</Link>
用户按下按钮并转到LoginScreen
。
- 在
LoginScreen
中,用户按下后退按钮并导航回MovieScreen
。
现在发生的是重新加载电影数据,丢失任何 UI 状态。我想避免这种情况。
据我了解,解决此问题的 React 方法是“提升状态”。
我的一个想法是在组件中加载电影数据,App
并且仅在加载 show 时加载MovieScreen
。
我的想法是一个好的解决方案吗?还有其他更好的解决方案吗?
解决方案
推荐阅读
- java - 使用装饰器的 Thymeleaf 布局不起作用
- java - SimpleDateFormat 支持解析哪些时区缩写?
- java - 如何在 Java 中将 Sting 转换为 ZonedDateTime
- php - 解析 stdclass 对象损坏的 XML
- powerapps - PowerApps Web 文件返回 404 和 500 错误
- android - 为什么android studio attach app by native debugger会执行gradle任务
- c++ - 循环内的尾递归如何工作?
- asp.net-core - ASP.NET Razor 页面,根据条件更改表格特定行的颜色?
- windows - 如何在 Powershell 中的 Chrome 窗口之间切换?
- flutter - 如何在手机上测试我的 Flutter 应用程序?用 vscode