中继和redux - initialVariables

时间:2016-01-04 11:30:25

标签: redux relayjs

Relay定义了graphql片段。我有一个将当前用户的ID作为参数。

当前用户ID存储在我的redux商店中。

如果我想设置用户ID中继变量,我可以在组件的一个生命周期方法中这样做。但是,relay期望在 <textField hyperlinkType="LocalAnchor"> <reportElement x="267" y="94" width="100" height="30" uuid="8fa9ce3d-015c-4d13-a677-3b9dbea4c222"/> <textFieldExpression><![CDATA["Anchor Target"]]></textFieldExpression> <hyperlinkAnchorExpression><![CDATA["expert"]]></hyperlinkAnchorExpression> <hyperlinkTooltipExpression><![CDATA["expert"]]></hyperlinkTooltipExpression> </textField> 中声明一个值。由于这是在模块加载时评估的,因此它无法访问redux存储。

作为一种解决方法,我已将initialVariables硬编码为relay {4}} dict中的userId变量。但是,这会导致中继发出初始请求,将其作为用户ID传递,然后生命周期方法运行后的另一个请求 - 调用'NULL' - 将用户ID更新为存储中的真实用户ID。这也会导致组件使用不完整的数据进行渲染,直到第二个调用完成。

有没有更好的方法让relay和redux一起玩,所以我可以从redux中的值设置中继变量?我不希望它为性能进行2次网络调用,也因为我不希望组件使用不完整的数据进行渲染。

我试图解释的示例代码是:

initialVariables

1 个答案:

答案 0 :(得分:0)

如果您想使用中继,我觉得您可能想要改变您对当前用户的看法。

为什么currentUser不是架构上的字段,而不是传递当前用户的id并获取它?将标记传递到标题中,让服务器返回您当前的用户。