javascript - 获取 React 路由器以导致重新渲染

标签 javascript reactjs react-router

我的主页上有混合内容。用户特定内容是他们自己的内容旁边的编辑按钮。 当用户通过注销路由注销时,将执行此代码:

   import React from 'react'; // needed
import ReactDOM from 'react-dom';
import Home from './components/layout/Home.js';
import Login from './Login/Login';
import PollDetails from './components/layout/PollDetails.js';
import EditPoll from './components/presentation/EditPoll.js';
import CreatePoll from './components/presentation/CreatePoll';
import Container from './components/containers/Container.js';
import {Route,Router,browserHistory,IndexRoute} from 'react-router';
import Auth from './utils/Auth';

const mountNode = document.getElementById('root');

ReactDOM.render( 
  <Router history={browserHistory}>
    <Route path="/" component={Container} >
      <IndexRoute component={Home} />
      <Route path="login" component={Login} />
      <Route path="logout" onEnter={(nextState, replace) => {
        Auth.deauthenticateUser();

        console.log('Logging out src/app.js');
        Auth.clearCookie();
        // change the current URL to /
        replace('/');}} />
      <Route path="Polldetailfull/:id" component={PollDetails}  />
      <Route path="Editthepoll/:id" component={EditPoll}  />
      <Route path="createPoll" getComponent={(location, callback) => {
        if (Auth.isUserAuthenticated()) {
          callback(null, CreatePoll);
        } else {
          callback(null, Home);
        }
      }} />
    </Route>
  </Router>,mountNode);

但是,replace('/');将您带回到主页,但不会重新渲染任何组件。请注意,此处没有要更改的状态。我需要一个状态来强制重新渲染吗?

请注意,如果您在浏览器上按刷新,则会发生所需的行为。我尝试查看 React Router 的代码,但找不到太多有关事件的信息。说实话,我并没有完全理解 onEnter={(nextState, Replace) =>

最佳答案

您可以使用location.reload()使其重新渲染

关于javascript - 获取 React 路由器以导致重新渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46266691/

相关文章:

javascript - 为不存在的元素设置值

javascript - 每次使用 jQuery,scrollTop() 返回零

reactjs - 使用 Component.WrappedComponent 作为 withRouter 的替代品测试组件在运行测试用例时显示警告

reactjs - 属性 `history` 在 `Router` 中被标记为必需,但其值为 `undefined` 。在路由器中

javascript - .click 重事件后函数不改变元素的位置

javascript - 如何检测 HTML 中 pdf 对象的点击事件

reactjs - 在 ReactJs 路由中将 props 传递给功能组件

javascript - 带有 React 或 Javascript 扩展的子类如何工作?

reactjs - 在 Material UI 抽屉中用间距分隔垂直元素

node.js - react 路由器部署非静态