使用Relay,您可以照常创建一个React组件:
class TodoApp extends React.Component {
...
}
然后将组件包装在Relay容器中:
export default Relay.createContainer(TodoApp, {
...
});
Relay容器将使用GraphQL获取数据,然后更新状态。这是一个更高阶的组件,然后这个状态作为道具传递给它的子组件。
这并不是像Redux这样的通量实现兼容(或者似乎没有)。 Redux有一个单一的全局状态对象,它也有更高阶的组件,可以将props传递给表示组件。所以我不知道Redux存储和Relay容器当前是如何共存的。
那么我们应该如何更新不是来自数据库的状态呢?这个状态应该如何通过Relay进行管理?
答案 0 :(得分:5)
虽然我无法向您提供有关一起使用它们的建议,但从技术上讲,您绝对可以依次应用几个更高阶的组件:
string cs = "Data Source=(LocalDB)\v11.0;"+
"AttachDbFilename=C:\Users\Mani\Desktop\DOT NET\Projects\"+
"TestDatabase\TestDatabase\Contact.mdf;"+
"Integrated Security=True";
我不确定这有多大意义,但它很容易实现。
答案 1 :(得分:0)
如果你使用Relay容器,这些东西仍在讨论中,Redux和Relay的当前状态可能不太适合。
您可以加入讨论here
答案 2 :(得分:0)
我在聊天应用程序中完成了以下操作:
ChatComponent
)是一个愚蠢的反应组件,它希望所有数据都作为道具。它还需要redux dispatch
函数作为prop,以便在有人想要发送新消息时调度操作。这是一个私密的'组件并由...包裹。ChatComponent
,但它是一个Relay组件,它也连接到redux存储。它使用生命周期方法之一(不构造函数)将通过中继接收的数据分派到redux存储中。这是应用程序其余部分使用的组件,基本上只是底层哑巴ChatComponent
的代理。它呈现ChatComponent
从redux商店传递其道具中的所有数据,以及还有redux dispatch
函数。