我正在嘗試使用React製作多語言SPA並依賴React-Router。不能做依賴React路由器的多語言網站
這裏是入口文件的簡化版本:
// define the routes for each language ..
const InnerRoutes = (
<Route>
<IndexRoute page="home" component={InnerPage}></IndexRoute>
<Route path="(:page)" component={InnerPage}></Route>
</Route>
);
// define the routes for all the languages, using InnerRoutes ..
const AllRoutes = (
<Router history={browserHistory}>
<Route path='/' component={App} language="bg">
{InnerRoutes}
<Route path="en" language="en">
{InnerRoutes}
</Route>
</Route>
</Router>
);
// and render our app ..
ReactDOM.render(
AllRoutes,
document.getElementById('app')
);
所以,我有App
頂級組件和InnerPage
組件。
的問題是:
- 當導航發生了變化 -
InnerPage
更新和(最終)重新呈現。
內部InnerPage
:
- 我有經由
page
屬性訪問所請求的頁面。 - 不幸的是 - 我無權訪問
language
屬性。
這就是爲什麼InnerPage
不能從終點拉數據 - 它知道page
,但不是language
。
好,事情是與安裝我描述 - 我在'App'組件'language',但不是在'InnerPage'之一。而關於'page'參數 - 反之亦然。所以 - 我怎麼能有 - 至少在'InnerPage'組件中。 ...........(可能路線設置是錯誤的......) –
也許我誤解了你,但是那不是什麼'路線'道具解決?你可以在你的所有路由組件('App','InnerPage')中得到相同的匹配路由數組,包括它們的屬性('page','language')。 –
我看到你的評論後去了'routes'屬性,但它也沒有用。即使我循環「路線」並檢查東西 - 語言也會丟失。 ......我開了一個關於它的問題 - https://github.com/ReactTraining/react-router/issues/4176。 –