gpt4 book ai didi

reactjs - goBack() 带我一直到第一个条目,而不是我想要的地方

转载 作者:行者123 更新时间:2023-12-03 13:24:58 24 4
gpt4 key购买 nike

我正在创建一个应用程序,我登录/注销有一个主页、关于、个人资料等。它也使用 react 路由器,但是当我登录时,我希望应用程序转换到它所在的最后一个路由,它有时会起作用,例如,如果我访问 about,然后登录并登录,它会让我回到 about,但是如果我访问应用程序根目录“/”,然后去登录,然后登录,它会让我回到我的第一页曾经打开过(这将是您打开浏览器或选项卡时的默认页面)。我是这样写的,我认为我这样做的方式可能非常幼稚。我是在名为 alot 的 render 方法中完成的。我认为有时与此有关,但我不完全确定。希望得到一些建议,代码:

constructor(props, context) {
super(props, context);
this.state = UserStore.getState();
this.context = context;
}

render() {

console.log(this.state.user.get('authenticated'));
if(this.state.user.get('authenticated')){
this.context.history.goBack();
}

return (
//stuff
)

我是否应该将一个状态插入历史记录我访问的每条路线,我还注意到,如果我在登录之前稍等一下,有时它会正确执行,也许它会将其添加到历史记录中有点晚或者需要一些时间?不完全确定如何调试它,console.log(this.context.history) 只是显示了它的一堆功能,我想我可能找错了地方?

路线:

export default (
<Route component={App}>
<Route path="/" component={Dashboard} />
<Route path="dashboard" component={Dashboard} onEnter={requireAuth} />
<Route path="about" component={About} />
<Route path="profile" component={Profile} onEnter={requireAuth}/>
<Route path="login" component={LoginSignupPage} />
<Route path="channels" component={Channels} />
</Route>
);

注入(inject)react-router

import React from 'react';
import ReactDOM from 'react-dom';
import Iso from 'iso';
import createBrowserHistory from 'history/lib/createBrowserHistory';
import { Router } from 'react-router';

import alt from 'altInstance';
import routes from 'routes.jsx';
import injectTapEventPlugin from 'react-tap-event-plugin';
window.React = React;
injectTapEventPlugin();

/*
* Client side bootstrap with iso and alt
*/
Iso.bootstrap((state, _, container) => {
alt.bootstrap(state);
ReactDOM.render(<Router history={createBrowserHistory()} children={routes} />, container);
});

最佳答案

<Route path="/" component={App}>
<IndexRedirect to='dashboard' />
<Route path="dashboard" component={Dashboard} onEnter={requireAuth} />
<Route path="about" component={About} />
<Route path="profile" component={Profile} onEnter={requireAuth}/>
<Route path="login" component={LoginSignupPage} />
<Route path="channels" component={Channels} />
</Route>

像这样更改路线可能会解决您的问题。路径“/”应该是“login”的父级路由,但不是同一级别

关于reactjs - goBack() 带我一直到第一个条目,而不是我想要的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34024567/

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