我似乎遇到了一种情况,我无法避免在Flux中发送调度问题.
我已经阅读了一些关于这个问题的类似问题,但是除了setTimeout黑客之外,它们似乎都没有一个好的解决方案,我想避免.
我实际上使用alt.js而不是Flux,但我认为概念是相同的.
想象一下最初呈现登录表单的组件.当用户登录时,这会触发最终以身份验证信息(例如用户名)响应的XHR,然后根据身份验证信息获取一些安全数据并呈现它而不是登录表单.
我遇到的问题是当我尝试根据XHR响应触发一个动作来获取数据时,它仍然在发送LOGIN_RESPONSE动作,并触发了可怕的行为
Error: Invariant Violation: Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch.
Run Code Online (Sandbox Code Playgroud)
我创建了这个jsfiddle来演示这个问题.
我有一个Wrapper组件Contents,根据用户是否设置,呈现登录按钮或子组件MyStore.
Wrapper组件中呈现.LOGIN操作.LOGIN_RESPONSE调度该操作(通过alt.js中的异步机制).MyStore更新用户名.Wrapper 组件观察存储更改并更新其状态.Wrapper呈现Content组件而不是登录按钮.Contentmount上的组件尝试分派FETCH_DATA操作,但由于调度程序仍在调度,因此操作失败LOGIN_RESPONSE.(如果我将FETCH_DATA调度包装在setTimeout它的工作中,但感觉就像一个黑客).这种情况的变化似乎是一种常见的情况.事实上,几乎所有相关问题都有类似的情况,但没有好的或具体的答案.
这个数据流有什么本质上的错误吗?做这样的事情的适当的Flux方式是什么?
我们正在将Okta登录小部件集成到基于React的webapp中。
示例片段:
var oktaSignIn = new OktaSignIn({baseUrl: baseUrl});
oktaSignIn.renderEl(...)
Run Code Online (Sandbox Code Playgroud)
首次渲染小部件时,对我们来说效果很好,但是在用户登录并再次注销后,Web应用程序将再次渲染登录组件,并会尝试renderEl再次执行以渲染小部件。这将引发以下异常:
Backbone.history has already been started
Run Code Online (Sandbox Code Playgroud)
我创建了这个jsfiddle来演示问题。它只是实例化登录小部件两次(等待后第二次)。您可以看到第二次调用导致引发异常。
https://jsfiddle.net/nudwcroo/6/
目前,我的解决方法是在登录组件时重新加载整个Web应用程序,但这对于单页面应用程序是不希望的。
这是一个已知的问题?有没有办法在单个javascript会话中两次初始化登录小部件?
我正在尝试在NFS文件系统上编写在Linux环境中运行的Java应用程序.
我注意到,当我调用时java.io.File.exists(),它会返回false ESTALE(Stale NFS文件句柄)和ENOENT(没有这样的文件或目录).对于我的应用程序,我需要能够区分这两者.
目前我正在考虑stat()使用JNA 实现调用,但这似乎有点矫枉过正,需要实现整个stat结构以及所有__xstat64看似平台依赖的东西.
是否有一种简单的方法可以简单地errno在Java调用之后获取底层函数File.exists()或者解决此问题的任何其他想法?
我正在处理 python 项目并使用 pytest-cov 模块生成用于单元测试的coverage.xml。但是我没有任何好的工具来解析coverage.xml并突出显示遗漏的代码行。这似乎是一个常见的用例,但我无法通过谷歌找到任何东西。
有没有任何工具(最好是通过命令行,因为我主要通过 ssh 工作)可以做到这一点?
如果我找不到任何东西,我正在考虑编写自己的 pygments 过滤器。