我有一个反应/中继应用程序,目前正在工作,我想添加路由到使用反应路由器中继。当我尝试最小可能的转换时,请参阅下面的代码,我在日志中得到了一个无法理解的错误:"Uncaught :变量违反: RelayQueryNode:无效的具体节点“。
import 'babel/polyfill';
import TodoApp from './components/TodoApp';
import { Router, Route } from 'react-router';
import ReactRouterRelay from 'react-router-relay';
import TodoAppHomeRoute from './routes/TodoAppHomeRoute';
/*
This section works perfectly
ReactDOM.render(
<Relay.RootContainer Component={TodoApp} route={new TodoAppHomeRoute()} />,
document.getElementById('root')
);
*/
//This breaks every time.
ReactDOM.render(
<Router
createElement={ReactRouterRelay.createElement}>
<Route
path="/"
component={TodoApp}
queries={new TodoAppHomeRoute().queries} // and the query
/>
</Router>,
document.getElementById('root')
);另一种表达这个问题的方法是:指定普通中继的RelayRoutes.queries和react路由器中继对路由的查询的适当方法之间有什么不同?
发布于 2015-09-29 08:11:18
其他几个人报告了这个问题,这里。
看起来,在组件中为每个Relay和React添加一个显式的Relay和React可能会修复它(我刚才看到了这个,它为我修复了它):
import React from 'react';
import Relay from 'react-relay';否则,npm install --save react react-relay graphql graphql-relay react-dom将更新您的依赖项。
发布于 2015-09-28 22:26:48
如果克里斯的答案行不通的话,@cpojer写了一篇关于路由和中继的非常棒的文章:https://medium.com/@cpojer/relay-and-routing-36b5439bad9
发布于 2015-09-28 03:15:03
我猜new TodoAppHomeRoute().queries是罪犯。我的预感是它可能是静态的。试试这个TodoAppHomeRoute.queries。
如果不起作用,让我们看看TodoAppHomeRoute中的代码
https://stackoverflow.com/questions/32708927
复制相似问题