2016-09-21 90 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