Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ReactJS路由器v4 Mobx-路由器不会重新渲染组件吗?_Javascript_Reactjs_React Router - Fatal编程技术网

Javascript ReactJS路由器v4 Mobx-路由器不会重新渲染组件吗?

Javascript ReactJS路由器v4 Mobx-路由器不会重新渲染组件吗?,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我使用mobxProvider来提供存储,方法是包装路由器 <Provider {...stores}> <BrowserRouter > <App /> </BrowserRouter> </Provider> validateUserRoute只是一个确保用户经过身份验证的函数,如果没有,则重定向到主页 const ValidatedUserRoute = ({component: Compone

我使用mobx
Provider
来提供存储,方法是包装
路由器

  <Provider {...stores}>
    <BrowserRouter >
    <App />
    </BrowserRouter>
  </Provider>
validateUserRoute
只是一个确保用户经过身份验证的函数,如果没有,则重定向到主页

 const ValidatedUserRoute = ({component: Component}, store, ...rest) => (
    <Route 
      {...rest} 
      render={props => 
        store.validated ? (
        <Component {...props} />) : (
          <Redirect to={{
            pathname: "/"
          }}
          />
        )
    } />
  );
  export default ValidatedUserRoute
const ValidatedUserRoute=({component:component},store,…rest)=>(
商店验证(
) : (
)
} />
);
导出默认ValidateUserRoute
问题

当我点击链接时,我的URL确实会改变,但组件不会呈现,就像页面在加载网页时被卡在最初加载的组件上一样

        <Link to="/">Home</Link>
        <Link to='/login'>Log In</Link>
主页
登录

如果您正在使用新的
反应路由器dom
。然后,您必须使用库提供的带路由器的
Hoc,并用它包装您的组件

import {withRouter} from 'react-router-dom'

const ValidatedUserRoute = ({component: Component}, store, ...rest) => (
    <Route 
      {...rest} 
      render={props => 
        store.validated ? (
        <Component {...props} />) : (
          <Redirect to={{
            pathname: "/"
          }}
          />
        )
    } />
  );
  export default withRouter(ValidatedUserRoute)
从“react router dom”导入{withRouter}
const ValidatedUserRoute=({component:component},store,…rest)=>(
商店验证(
) : (
)
} />
);
使用路由器导出默认值(ValidateUserRoute)

哪个组件负责执行路由。如果您正在使用新的
react router dom
,请用路由器将其包装在
中。然后,您必须使用库提供的带路由器的
Hoc,并用它包装您的组件

  <Provider {...stores}>
    <BrowserRouter >
    <App />
    </BrowserRouter>
  </Provider>
import {withRouter} from 'react-router-dom'

const ValidatedUserRoute = ({component: Component}, store, ...rest) => (
    <Route 
      {...rest} 
      render={props => 
        store.validated ? (
        <Component {...props} />) : (
          <Redirect to={{
            pathname: "/"
          }}
          />
        )
    } />
  );
  export default withRouter(ValidatedUserRoute)
从“react router dom”导入{withRouter}
const ValidatedUserRoute=({component:component},store,…rest)=>(
商店验证(
) : (
)
} />
);
使用路由器导出默认值(ValidateUserRoute)

哪个组件负责执行路由。用路由器将其包装在

我必须用此包装所有组件还是仅包装包含路由的组件?所有导致路由更改的组件。它也可以是
标题
。我必须用它包装所有组件还是只包装包含路由的组件?所有导致路由更改的组件。它也可以是
标题
  <Provider {...stores}>
    <BrowserRouter >
    <App />
    </BrowserRouter>
  </Provider>