gpt4 book ai didi

javascript - React Redux with redux-observable 在异步操作完成后使用路由器导航到不同的页面

转载 作者:搜寻专家 更新时间:2023-11-01 04:53:44 25 4
gpt4 key购买 nike

我正在使用 redux-observable这是我的登录史诗:

const login = ( action$ ) => {
return action$.ofType(SessionActions.LOGIN_USER)
.flatMap(( {payload} ) => {
return sessionService.login(payload)
.do(payload => {
sessionService.setSession(payload));
// Here I want to redirect the user back to his last location
}).map(result => ({
type: SessionActions.LOGIN_SUCCESS,
payload: result
}));
});
}

但是我如何在登录操作成功后将用户重定向到不同的页面。

redux 的方法是什么?

最佳答案

如果您使用 redux-observablereact-router-redux ,您可以在史诗中进行任何重定向:

import { ajax } from 'rxjs/observable/dom/ajax';
import { push } from 'react-router-redux';
import NProgress from 'nprogress';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/mergeMap';

export default function login(action$) {
return action$.ofType('LOGIN_USER')
.do(() => NProgress.start())
.mergeMap(payload => (
// Call your login service here, please note that it must be an observable to continue in your epic chain.
Observable.fromPromise(sessionService.setSession(payload))
// This is the redirect you're looking for, it's now became an action thanks to react-router-redux :)
.mapTo(push({ url: '/' }))
.do(() => NProgress.done())
));
}

我什至为奖励积分添加了一个进度指示器 :) 它是在 redux-observable's own navigation example 的帮助下构建的

关于javascript - React Redux with redux-observable 在异步操作完成后使用路由器导航到不同的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39954010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com