javascript - 如何使用 React Hooks 仅在用户访问的任何第一页设置状态?
问题描述
我正在学习 React Hooks,我需要在用户访问的第一页设置一个状态,并且它必须持续存在。
现在我正在这样做:
const Routes = () => {
const [state, dispatch] = useContext(StoreContext);
useEffect(async () => {
const rates = await updateRates();
dispatch({ type: "UPDATE_RATE", payload: rates });
}, []);
return (
<BrowserRouter>
<Route path="/" component={favicon} />
<Route path="/" component={navbar} />
<Switch>
<Route exact path="/" component={Main} />
<Route path="/signin" component={SignIn} />
<Route path="/signup" component={SignUp} />
<PrivateRoute path="/app" component={() => <h1>App</h1>} />
<Route path="*" component={() => <h1>Page not found</h1>} />
</Switch>
</BrowserRouter>
);
};
这是我的routes.js
档案。但是,这会使状态更新用户访问的每个其他页面。例如,如果用户访问Main
,则SignIn
状态在渲染时更新Main
,然后在渲染时再次更新SignIn
。
我试图把我的App.js
文件,但它没有工作。
提前致谢!
解决方案
推荐阅读
- css - 围绕另一个大圆圈的圆周动画一个圆圈
- xcode - xcode中的简单淡入淡出功能
- optimization - Pyomo:如何在不声明名称的情况下创建新的模型变量,然后将其存储在字典中?
- javascript - 我创建了一个反应原生应用程序,并且每次都必须刷新我的屏幕才能从 firebase 获取新添加的数据。我正在使用钩子
- anova - 例如,运行 ezANOVA 时出错:找不到函数“ezANOVA”
- bootstrap-4 - 从引导程序 4 卡中删除额外空间
- android - FirebaseUser 在 Android (JAVA) 中为 Facebook 个人资料的电话号码提供了错误的图像和空值
- ios - 更改视图会导致音频引擎出现故障
- c - 如何转置数组但不改变c中的行数和列数?
- swiftui - SwiftUI - 从 UserDefaults 访问数据时选择器值不会改变