我对以下情况有疑问:
如果您使用来自中继道具的setVariables
方法并更改方式中的变量,则该中继必须从服务器检索其他数据(例如,在以下操场示例中单击“加载更多故事”{{3} })。
我希望在使用值readyState
和ready = true
收听回调done = true
后,道具包含新获取的信息。就像在操场示例中一样,在将numStoriesToLoad
增加初始值3后,道具viewer.storyFeed.edges.length
为4。
实际发生的是,即使在收到命名回调之后,道具仍然具有旧值。如果这种行为是故意的,那么如何链接依赖于前一次呼叫结果的setVariables
次呼叫呢?
答案 0 :(得分:0)
setVariables
不会立即更新变量。
它实际上进入挂起状态并将继续返回旧变量,直到使用新数据填充道具。
如果您想查看其处理方式,请查看_runVariables
中的RelayContainer
功能。似乎在调用ReadyStateCallback
时,新的道具尚未填充。
也许你可以在componentWillReceiveProps
处理呢?
编辑:刚发现:
setVariables不会立即改变变量,而是创建一个 待定状态转换。变量将继续返回 以前的值,直到this.props填充了数据 实现新的变量值。