在每次页面加载时反应刷新用户数据
React refresh user data on every page load
我在解决我正在处理的 React 应用程序中的问题时遇到了问题。当用户登录时,它会存储有关用户的信息,例如他们的姓名和角色。使用这个我们显示用户的名字,并且显然使用他们的角色来显示或隐藏组件。
我无法弄清楚的问题是,如果用户的名称发生变化,或者他们的角色在登录时发生变化,则信息不会更新。现在我可以在每次用户编辑他们自己的个人资料时刷新数据,但是如果管理员用户编辑登录用户的名称或角色怎么办?直到下次登录才会更新。
我考虑过使用 withRouter
并执行 history.listen
并在基础 App.js
上每次加载页面时更新用户信息。我看到的问题是它经常被 REPLACE
调用两次,然后是 PUSH
,所以我不想进行 2 次 API 调用。
有没有办法让我只能通过路由更改拨打 1 API 电话?我应该怎么做呢?我什至正确地接近这个吗?有没有更好的方法来解决这个问题?我似乎找不到任何可以帮助我的东西。
您可以创建一个自定义路由组件,在每次重定向时调用 API。看看这个https://reacttraining.com/react-router/web/example/auth-workflow。在此示例中,"PrivateRoute" 组件用于检查用户是否在每个请求上都被授权。您可以创建一个 UpdateUserRoute 组件来调用 API 并检查用户数据的变化。
我在解决我正在处理的 React 应用程序中的问题时遇到了问题。当用户登录时,它会存储有关用户的信息,例如他们的姓名和角色。使用这个我们显示用户的名字,并且显然使用他们的角色来显示或隐藏组件。
我无法弄清楚的问题是,如果用户的名称发生变化,或者他们的角色在登录时发生变化,则信息不会更新。现在我可以在每次用户编辑他们自己的个人资料时刷新数据,但是如果管理员用户编辑登录用户的名称或角色怎么办?直到下次登录才会更新。
我考虑过使用 withRouter
并执行 history.listen
并在基础 App.js
上每次加载页面时更新用户信息。我看到的问题是它经常被 REPLACE
调用两次,然后是 PUSH
,所以我不想进行 2 次 API 调用。
有没有办法让我只能通过路由更改拨打 1 API 电话?我应该怎么做呢?我什至正确地接近这个吗?有没有更好的方法来解决这个问题?我似乎找不到任何可以帮助我的东西。
您可以创建一个自定义路由组件,在每次重定向时调用 API。看看这个https://reacttraining.com/react-router/web/example/auth-workflow。在此示例中,"PrivateRoute" 组件用于检查用户是否在每个请求上都被授权。您可以创建一个 UpdateUserRoute 组件来调用 API 并检查用户数据的变化。