我有一个React Web应用程序,允许图片上传。
在向我的API执行多个图像(在此例中为6)的fetch POST请求后,浏览器会刷新并重新加载当前页面。值得注意的是,此应用程序允许裁剪图像,因此对于用户上传的每个图像,都有第二个图像(裁剪后)需要上传。因此,上述6张图片会导致12个POST请求。
刷新行为不一致且难以复现。我已在函数中插入断点,以便发生此行为。使用Chrome调试工具,我已经逐步了解了流程,并发现刷新发生在此调用之后。
this.ws.onmessage = function(e) {
debug('message event', e.data);
self.emit('message', e.data);
};
它位于库 node_modules/react-dev-tools/node_modules/socketjs-client/lib/transport/websocket.js
中的文件websocket.js
内。
我已经缩小了范围,排除了项目代码库中的任何问题。
我认为我的应用程序的行为会触发外部监听器/情况,从而导致完整的浏览器刷新。
我看到所涉及的文件在react-dev-tools
中,认为删除此模块可以解决问题,但是这也会在我的生产环境中出现,并且我感到删除此模块可能会破坏构建。
请提供任何关于更好的调查方法或潜在解决方案的想法。