Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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 反应:如何处理语言选择的路由_Reactjs - Fatal编程技术网

Reactjs 反应:如何处理语言选择的路由

Reactjs 反应:如何处理语言选择的路由,reactjs,Reactjs,这里是初学者。我想在我的新网站中实现语言选择。用户可以从下拉菜单中选择特定国家/地区。根据所选语言,URL应更新为/:country/about,整个页面的内容应相应更新 在我脑海中,我可以尝试以下选项之一 在大多数父应用程序组件状态下定义语言,当更改时,将使用新的语言和设置重新呈现整个应用程序(所有子应用程序) 使用location.href加载包含国家/地区代码的新URL,这将使用新语言和设置实现完全重新加载 index.js ReactDOM.render ( <Provid

这里是初学者。我想在我的新网站中实现语言选择。用户可以从下拉菜单中选择特定国家/地区。根据所选语言,URL应更新为
/:country/about
,整个页面的内容应相应更新

在我脑海中,我可以尝试以下选项之一

  • 大多数父应用程序组件状态下定义语言
    ,当更改时,将使用新的语言和设置重新呈现整个应用程序(所有子应用程序)

  • 使用
    location.href
    加载包含国家/地区代码的新URL,这将使用新语言和设置实现完全重新加载

  • index.js

    ReactDOM.render
    (
        <Provider store={store}>
            <BrowserRouter>
                <Switch>
                    <Route path="/:country/about" component={AboutPage} />
                    <Route path="/:country" component={HomePage} />
                    <Route path="/" component={HomePage} />
                </Switch>
            </BrowserRouter>
        </Provider>,
        document.getElementById('app')
    );
    
    <li>
        <Link to="/">Home</Link>
    </li>
    <li>
        <Link to="/:country/all-restaurants">All Restaurants</Link>
    </li>
    <li>
        <Link to="/:country/how-it-works">How It Works</Link>
    </li>
    <li>
        <Link to="/:country/about">About Us</Link>
    </li>
    <li>
        <Link to="/:country/restaurant">Lallo Pizzeria</Link>
    </li>
    

    我不知道接下来会发生什么。处理此问题的最佳方法是什么?

    将图像URL更改为以斜线开头的适当URL就足够了

    /assets/img/image.jpg
    
    他们会指出

    http://localhost:8080/assets/img/image.jpg
    

    嗯,为什么不将国家作为路由器参数发送,而将其作为查询参数发送呢。我的意思是,不要使用
    “/:country/about”
    ,而是保留它
    “/about”
    ,并将它发送到
    “/about/?country=en”
    。这样指向指向图像的URL就不会被破坏。这是个好主意。谢谢。将图像URL更改为以斜杠开头的适当URL就足够了,如
    /assets/img/image.jpg
    ,它们将指向
    http://localhost:8080/assets/img/image.jpg
    这是有用的信息,谢谢。
    /assets/img/image.jpg
    
    http://localhost:8080/assets/img/image.jpg