Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 继电器能否与Next.js SSR一起正常工作?_Javascript_Next.js_Relayjs - Fatal编程技术网

Javascript 继电器能否与Next.js SSR一起正常工作?

Javascript 继电器能否与Next.js SSR一起正常工作?,javascript,next.js,relayjs,Javascript,Next.js,Relayjs,我通过编写一个新的Next.js应用程序开始学习Relay。到目前为止,我一直在遵循Next.js repo中的示例,它在从服务器获取数据方面运行良好。然而,我现在已经超越了这个例子,添加了一个变异,事情立即停止了工作 突变更新程序如下所示: 函数更新存储( 存储:RecordSourceSelectorProxy, formInstanceUuid:字符串, ) { const mutation=store.getRootField(“updateFormValue”); const newF

我通过编写一个新的Next.js应用程序开始学习Relay。到目前为止,我一直在遵循Next.js repo中的示例,它在从服务器获取数据方面运行良好。然而,我现在已经超越了这个例子,添加了一个变异,事情立即停止了工作

突变更新程序如下所示:

函数更新存储(
存储:RecordSourceSelectorProxy,
formInstanceUuid:字符串,
) {
const mutation=store.getRootField(“updateFormValue”);
const newFormValue=突变?.getLinkedRecord(“formValue”);
如果(!newFormValue){
从服务器抛出“预期的新表单值”;
}
const localFormInstance=store.get(formInstanceUuid)
const localValueRecords=localFormInstance?.getLinkedRecords(“值”)||[];
for(localValueRecords的常量记录){
if(record.getValue(“partUuid”)==newFormValue.getValue(“partUuid”)){
log(“将字段从服务器提供的值复制到本地值”);
record.copyFieldsFrom(newFormValue);
}
}
调试(“存储的新状态:”,initEnvironment().getStore().getSource())
}
它所做的只是将从服务器返回的“value”对象注入本地“form”对象中的value对象列表。正如您所看到的,我正在最后一行转储存储的状态,因此我可以确认突变按预期工作,并且局部值按预期修改

但是,UI不会刷新。我必须重新加载窗口才能看到新的状态

我一辈子都搞不清楚自己做错了什么,所以我开始怀疑我所遵循的示例是否只适用于获取数据。我假设是
QueryRenderer
对象负责在底层存储更改时刷新UI,而示例中没有使用。我也无法想象如何在不破坏SSR的情况下将
QueryRenderer
添加到示例中

TL;博士 添加突变时,“with relay modern”示例有效吗,还是我的问题在其他地方?