Javascript react window.onload上的浏览器兼容性问题?
成功调用API后,我将调用Javascript react window.onload上的浏览器兼容性问题?,javascript,reactjs,routing,routes,reactjs-flux,Javascript,Reactjs,Routing,Routes,Reactjs Flux,成功调用API后,我将调用window.onload进行组件刷新,以重定向到特定路由 export function _getUserPlanForUser(data) { let token = localStorage.getItem('accessToken'); let url = "/userplans/listuserplans?access_token=" + token; let BASE = "http://172.104.176.144:9080" let actual
window.onload
进行组件刷新,以重定向到特定路由
export function _getUserPlanForUser(data) {
let token = localStorage.getItem('accessToken');
let url = "/userplans/listuserplans?access_token=" + token;
let BASE = "http://172.104.176.144:9080"
let actualurl = BASE + url;
Api._callAPI(actualurl, 'GET', data, (type, dt) => {
if (type == 'success') {
dispatcher.dispatch({
type: 'UsersPlansForUser',
data: dt,
})
window.onload = function() {
if(!window.location.hash) {
window.location = window.location + '#loaded';
window.location.reload(true);
}
}
}
});
}
在routes.js
文件中,我根据条件进行验证
import React from 'react';
import { Route, IndexRoute } from 'react-router';
import App from './components/App';
import loginPage from './components/login/login.component.jsx';
import dashboard from './components/dashboard';
import Home from './components/Home/home.jsx';
import Myplan from './components/MyPlan/myplan.jsx';
export default (
<Route component={App}>
<Route path="/" >
<IndexRoute component={loginPage} />
</Route>
<Route path="/dashboard" component={dashboard} >
{
(localStorage.getItem("ValidateRoute")) == "0" ?
[
<IndexRoute component={Myplan} />,
<Route path='/home' component={Home} />
] : [
<IndexRoute component={Home} />,
<Route path='/myplan' component={Myplan} />
]
}
</Route>
</Route>
);
从“React”导入React;
从“react router”导入{Route,IndexRoute};
从“./components/App”导入应用程序;
从“./components/login/login.component.jsx”导入loginPage;
从“./components/dashboard”导入仪表板;
从“./components/Home/Home.jsx”导入Home;
从“./components/Myplan/Myplan.jsx”导入Myplan;
导出默认值(
{
(localStorage.getItem(“ValidateRoute”)=“0”?
[
,
] : [
,
]
}
);
根据条件ValidateRoute
成功重新加载后,我将路由到特定组件!
在Chrome上一切正常,但作为窗口。重新加载不起作用,它没有重定向到特定路径
请给我一些在Mozilla上重新加载(或)在Mozilla中正确重定向到特定路径的指南
我已经工作了一个星期,仍然找不到任何解决办法。已修复的问题将对我非常有帮助。如果必须使用现有代码,请使用window.replace。window.location=window.location+'#loaded'之后的语句代码>永远不会执行-我强烈建议您重新设计。React不需要普通JS来更改路由。在我看来,你没有使用你正在使用的框架的功能-@mplungjan通常根本不会使用纯Js,但是对于这个路由,我找不到任何其他路由方法,在成功调用api后,根据响应长度,我需要重定向到特定组件,如路由文件中所示,你能建议其他方法吗。谢谢你的快速回复,我真的很想找到一个回应的方式-你读了我给你的链接了吗?我会认为历史,推动或类似的方式是要走的。其他人可能会有更好的想法。window.replace不会刷新组件,因此在重新加载页面后不会重定向到正确的组件。它会正确重定向到特定的组件,因此我应该使用它。我使用了history.push,最初也只是重定向到主组件!如果条件匹配,也不会重定向到myplan组件