避免使用ReactJs+显示来自其他用户的数据(旧数据);Redux+;砰

避免使用ReactJs+显示来自其他用户的数据(旧数据);Redux+;砰,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我已经阅读/观看了ReactJs和Redux的一些指南/教程,介绍了如何使用它获取数据并在屏幕上显示。基本原则是: const DataView = () => { const dispatch = useDispatch(); const {data} = useSelector(data => data); useEffect(() => { dispatch(getData()); }, []); return

我已经阅读/观看了ReactJs和Redux的一些指南/教程,介绍了如何使用它获取数据并在屏幕上显示。基本原则是:

const DataView = () => {
    const dispatch = useDispatch(); 
    const {data} = useSelector(data => data);

    useEffect(() => {
        dispatch(getData());
    }, []);

    return (

    // show data

    );
};
这个很好用。数据提取完成,数据显示正确

但是,如果这些数据是合理的,而不是其他人应该能够看到它呢?如果我第一次进入此屏幕,“数据”将为空。没问题。useEffect将执行数据获取,完成后,将显示信息

现在,如果我转到另一页,然后回到那里呢。因为“数据”不再为空,我将显示旧数据,直到再次完成提取。这不是问题,因为我和同一个用户在一起

如果该用户注销,另一个用户登录怎么办? 如果新用户进入此页面,我将显示其他用户信息,直到获取完成(这可能需要几秒钟)

我正在考虑几种“修复”方法,但我不确定哪一种是正确的:

1) 将信息存储在链接到用户会话的还原器中

2) 直接调用axios获取数据,以避免显示来自axios还原器的旧数据

3) 在登录/注销后清除还原器信息

欢迎任何解释这种情况的博客/视频/书籍!谢谢

只有我的2美分

由于您已经提到的安全原因,我在Redux存储中管理的所有数据始终与当前登录的用户相关

在注销或过期会话(jwt+刷新令牌)上,我总是通过重置Redux存储

一般来说,我看不出有什么好的理由在本地保留/持久化多个用户会话数据

以下是一些与本主题相关的好资源:

*简而言之,他们所做的只是在注销时重置/清除存储+本地存储/cookie


  • 你能核对一下我的答案吗?如果您有任何问题/反馈,请随时提出以下问题。如果答案对你有帮助,请考虑接受/接受。非常感谢。