2016-09-21 91 views
0

我的應用程序需要本地化支持。我正在使用同構中繼路由器。如何將繼電器QL值添加到同構中繼路由器

const customQueries = { 
    viewer:() => Relay.QL' 
    fragment on JobSeekerEntry{ 
     language 
    } 
    ' 
}; 

export default [ 
    { 
     path: '/', 
     component: Index, 
     queries: ViewerQueries, 
     indexRoute: { 
      component: Home, 
      onEnter: ({params}, replace) => replace("/" + customQueries.viewer.lanaguage ), 
      queries: ViewerQueries, 
      prepareParams:() => ({status: 'any'}), 
     }, 
     childRoutes: [ 
      { 
       path: "/:language", 
       component: Home, 
       queries: ViewerQueries, 

      }, 
      { 
       path: "/:language/status", 
       component: Test, 
       queries: ViewerQueries, 

      }, 
      { 
       path: '/:language/test/:user', 
       component: Home, 
       queries: ViewerQueries, 
      }, 
     ], 
    }, 
]; 

在上面的代碼示例是希望用戶能夠根據他/她的優先停留lanaguage重定向。對於搜索引擎優化支持,我想爲英語顯示www.exmaple.com/en,爲日語顯示www.example.com/jp。「en」和「jp」值來自graphql(來自服務器)。我想將這些值分配給路由器參數。特別是當從服務器端進行頁面渲染時。請幫我解決這個問題。

回答

0

您可以定義ViewerQueires爲常數,並通過語言,這樣

const ViewerQueries = { 
    viewer:() => Relay.QL `query{post(postID: $language)}`, 
}; 

PARAMS和你應該組件頁面上定義片段如下

export default Relay.createContainer(Home, { 
    fragments: { 
    viewer:() => Relay.QL` 
     fragment on JobSeekerEntry { 
     language 
     } 
    `, 
    }, 
}); 
+0

請出示您更精確schema.js回答。 – akshay