问题标签 [refluxjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何在一个简单的测试程序中强制触发回流动作?
我正在尝试了解 Reflux 操作和存储的工作原理,因此我编写了一个小型测试程序。当我运行应用程序时,调用的代码
(这会导致 Reflux Action 触发)不会立即运行。这些动作事件被排队,如下程序的输出所示。
输出是:
注意控制台输出
在程序退出之前不会出现。这(对我来说)意味着动作事件被 Reflux 正在做的一些“内务处理”捆绑和触发/运行。
我可以调用一个函数来告诉 Reflux 触发已排队的操作事件吗?
要重新创建此示例,只需将代码保存到 RefluxTest.js 并运行以下命令:
谢谢。
注意:我知道这并不代表 Reflux 通常如何使用,因为它在浏览器之外,但我很好奇是否有人有答案。
reactjs - Disconnect Reflux listenTo method
So, I have two stores. First pageStore serves business logic of specific page, and second globalStore logic of Android/iOS global events. When user enters specific page React.componentDidMount calls
so from this my pageStore started to listen global storage for GPS updates. But is there any way to disconnect listenTo on React.componentWillUnmount ?
javascript - 商店更改后的回流回调
我正在使用 React.js 和 Reflux 开发 Chrome 扩展程序。现在,当使用一个回调更新商店时,我需要通知扩展的所有部分有关更改的信息。
就像是:
Reflux 中添加此类回调的意义在哪里?
javascript - 直接监听 Component 中的 Reflux Actions
从我读过的模式来看,组件将数据传递给传递到存储的操作,其值更改会触发订阅存储的组件中的更新。我的问题是如何以通知的形式对这些触发的更新做出“反应”?(即成功保存的通知)
即我是否向这个通知组件的呈现添加逻辑,如果它订阅的对象中有某个标志属性,它只会显示自己?然后在一段时间后自行删除。这听起来不对。
更新
感谢 Hannes Johansson,我认为我对模式有了更好的把握。我的工作如下:
组件通过 action 将数据传递到 Store
Store 与 api 交互并向模型添加一个标志,该标志现在通知组件更新模型。
/li>组件看到标志并呈现“通知子组件”
/li>需要根据此事件将应用程序移动到新位置。这应该是 a) 通知子组件 b) 父组件 c) 商店吗?
根据Colin Megill 的关于通量 api 模式的演讲,api 交互应该发生在动作中,但回流并不允许这样做。
更新 2
组件将数据传递给一个名为
createItemRequest
Action 有一个实际执行 api 调用的 preEmit 钩子。继续到商店,
/li>createItemRequest
以便商店可以更改模型以反映发送状态,然后将其显示在组件中(可能显示微调器)。Action 还负责根据 api 结果触发另外两个事件。
node.js - 不确定 .listen() 中的回流到底是做什么的
在refluxjs
我不确定是什么.listen()
。据我了解,它与 nodejs eventemitter 具有相同的概念,但回流以自己的方式包装。我似乎在任何地方都找不到这方面的文档。也许我错过了。我想.listen()
在源代码或文档中找到,以便确切知道如何refluxjs
使用它。
javascript - Javascript JSX,非法进口申报
我有一个使用带有 Reflux 的 React 组件的 jsx 文件。只有一个小动作:
如何将此操作移动到另一个文件?根据JSX 文档,包含其他文件应该很容易:
// 从“a.jsx”导入所有不以“_”开头的类
导入“a.jsx”;
我试图将它移动到 actions/clickedAction.jsx (或 .js)中并使用导入它,import "actions/clickedActions.jsx"
但我不断得到Illegal import declaration
. 我怎样才能做到这一点?
我没有使用 RequireJS,如果可能的话,我想避免它。我发现的另一种解决方案是将其包含在 HTML 文件中,
,但这并不理想,想另辟蹊径。感谢您的关注和帮助。
javascript - 使用回流时如何在javascript控制台中访问lodash
我正在开发一个使用 React 周围的 Reflux 框架的应用程序。当我们想在文件中使用外部库时,我们需要:
然后我们可以使用_.
来访问所有的 lodash 方法。我还希望能够_.
在开发时在 javascript 控制台中访问。有没有办法要求 lodash 以便在那里可用?
javascript - 回流js中的动作方法
我现在正在尝试学习refluxjs
,但正在查看一个名为 react-news 的 github 项目。
具体来说,该项目的这一行让我有点困惑:
https://github.com/echenley/react-news/blob/master/src/js/App.jsx#L80
Actions.hideModal();
Actions
来自import Actions from './actions/Actions';
项目。
当我查看 时Actions.js
,我看到的唯一实例hideModal
是在第 41 行和第 50 行。
https://github.com/echenley/react-news/blob/master/src/js/actions/Actions.js#L41 https://github.com/echenley/react-news/blob/master/src/js /actions/Actions.js#L50
我不确定 for 的逻辑Actions.hideModal();
从何而来。
reactjs - React + Reflux - 共享同一存储的组件的队列和超时问题
我有一个像这样的组件,
我已经为示例重构了它,不使用 valueLink 来帮助说明问题。
在这个例子中,我有一个 Field 组件,多次渲染 (3) 都绑定到商店中的同一个属性。这个概念非常简单,当一个输入发生变化时,它会反映在另一个上。
如果您键入非常快(敲几个键)并且事件排队然后以循环结束,其中每个组件都根据来自另一个组件的较早状态更新而更新,那么问题就来了。如果您输入缓慢,我想队列上的滴答超时会更慢,它工作正常。
使用值链接可以观察到类似的症状。但它几乎在做同样的事情,所以我希望如此。
在更新存储中的值之前,我考虑过使用自己的超时,即等到用户完成输入;但我想知道框架/lib中是否有任何东西可以处理它?
谢谢
javascript - 为什么 Reflux 中的同步操作也不能用作 Promise?
在我的代码中,我大量使用异步操作作为 Promise模式。这是一个例子:
这很好用。当首先 oAuth 然后 POST 请求完成时connectToFacebook.completed
,我的外部promise.then
将按预期触发。
但是,我必须添加{sync: true}
到操作的定义中,因为_doFacebookConnect
调用的实现window.open
将被阻止,除非在与用户单击事件相同的调用堆栈上调用。默认情况下,在调度事件时会使用 Reflux _.nextTick
,因此它不再在同一个堆栈上。
当我这样做时,该操作仍然可以正常工作,并且弹出窗口阻止程序不再是问题。但是,我的外部promise.then
无法执行,因为actions.connectToFacebook()
现在的返回值undefined
而不是我返回的承诺listenAndPromise
。
为什么 Reflux 突然停止通过返回的承诺,有什么办法可以优雅地解决这个问题?