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
Reactjs react router v5 BrowserRouter basename更改,但url不';T 函数应用程序(){ 返回( ); } 功能MyRouter(道具){ const{lang,setLang}=useContext(LanguageContext); 返回{props.children}; } ReactDOM.render( , document.getElementById(“根”), );_Reactjs_React Router - Fatal编程技术网

Reactjs react router v5 BrowserRouter basename更改,但url不';T 函数应用程序(){ 返回( ); } 功能MyRouter(道具){ const{lang,setLang}=useContext(LanguageContext); 返回{props.children}; } ReactDOM.render( , document.getElementById(“根”), );

Reactjs react router v5 BrowserRouter basename更改,但url不';T 函数应用程序(){ 返回( ); } 功能MyRouter(道具){ const{lang,setLang}=useContext(LanguageContext); 返回{props.children}; } ReactDOM.render( , document.getElementById(“根”), );,reactjs,react-router,Reactjs,React Router,这是我的index.jsx文件,它正在工作。我这里的问题是BrowserRouter的basename会根据上下文进行更改,但不会影响URL 例如,第一个地址是site.com/base/some page。使用上下文,lang的值正确更改,“react-DevTools”表示BrowserRouter的basename值也已更改。现在,当我导航时,地址应该是site.com/newbase/other page;但是它仍然是site.com/base/另一个页面,URL没有改变 我该怎么办 f

这是我的index.jsx文件,它正在工作。我这里的问题是
BrowserRouter
basename
会根据上下文进行更改,但不会影响URL

例如,第一个地址是
site.com/base/some page
。使用上下文,
lang
的值正确更改,“react-DevTools”表示
BrowserRouter
basename
值也已更改。现在,当我导航时,地址应该是
site.com/newbase/other page
;但是它仍然是
site.com/base/另一个页面
,URL没有改变

我该怎么办

function App() {
   return (
         <main>
            <Switch>
               <Route path={`/:lng(en)?/blog/:slug`} component={BlogPost} />
               <Route path={`/:lng(en)?/blog`} component={Blog} />
               <Route path={`/:lng(en)?/gallery`} component={Gallery} />
               <Route exact path={`/:lng(en)?`} component={Home} />
            </Switch>
         </main>
   );
}

function MyRouter(props) {
   const { lang, setLang } = useContext(LanguageContext);
   return <BrowserRouter basename={lang}>{props.children}</BrowserRouter>;
}

ReactDOM.render(
   <LanguageProvider>
      <MyRouter>
            <App />
      </MyRouter>
   </LanguageProvider>,
   document.getElementById("root"),
);