在使用react-router-dom的redux action中进行重定向。

12 浏览
0 Comments

在使用react-router-dom的redux action中进行重定向。

我刚开始接触React。我有一个名为Register.js的组件,在那里我调用了redux action的方法register。所以在其中,我想在dispatch之后将用户重定向到路径/dashboard

这是我在redux中的action:

const { REGISTER_USER } = require('./types')
export const register = (values) => async dispatch => {
    try {
        // 注册部分在这里...
        dispatch({
            type: REGISTER_USER,
            payload: values
        })
    } catch (error) {
        console.log(error)
    }
} 

在React中,我该如何实现这个目标?

0
0 Comments

问题的出现原因:在Redux action或reducer/state文件中进行重定向会导致代码逻辑混乱,不符合React组件的设计原则。

解决方法:使用React Router和history功能,在action完成并解析后(例如用户注册后),通过push方法跳转到新页面。另一种方法是将"register"作为一个模态框,在提交后隐藏模态框并使用新的props刷新仪表板组件(这样会为新认证的用户获取数据)。需要注意的是,不应该在action或reducer/state文件中进行重定向,而应该在React组件的逻辑中处理。

0