问题标签 [redux-thunk]

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.

0 投票
2 回答
1213 浏览

reactjs - Reduxjs,Reactjs:删除项目,提供撤消功能

我正在使用 Reactjs 和 Redux 开发一个应用程序。我有一个要求,我需要从列表中删除该项目。此处删除功能一切正常,但我需要为用户提供撤消删除的选项。我目前的方法是

这里我先从状态中删除帖子,然后调用 fetch 请求从服务器中删除。但是如果我给任何这样的功能来逆转,我不能只是从服务器中删除。我认为显示撤消选项大约 3 秒并执行操作是合理的。您能否帮助我如何实现这一点,以及是否有任何其他 Web 应用程序实现了这一点。谢谢

0 投票
1 回答
228 浏览

meteor - Thunks 不发送

谁能看到我的thunks有什么问题?永远不会调用内部代码,但会调用外部代码。这是一个例子:

这就是我将它连接到组件事件的方式:

这是我的商店设置:

毫无疑问,您会认出其中很多代码,因为它改编自redux 文档中的优秀示例

selectCustomer函数被调用,因此mapDispatchToProps似乎已将selectCustomer函数连接到组件,只是selectCustomer没有调用返回的方法。

0 投票
1 回答
1238 浏览

redux - Redux 中的微调器加载

在 Redux 中做某种旋转指标的理想方法是什么?

假设我有一个名为Things. 在 React 组件中,我有Thing CardThing Card ListAdd Thing Form.

如果我每次都想旋转微调器,那么理想的方法是什么:*)GET Things从服务器 *)PUT Thing/123到服务器 *)DELETe Thing/123从服务器 *)POST Thing到服务器

我知道这个想法几乎是isPending: true在 Redux Store 中设置一个称为状态的状态。

这就是我所拥有的

但是,这isPending: true是为了什么动作?得到?放?删除?邮政?如果我让所有这些动作都依赖于同一个属性,isPending: true那么奇怪的事情就会开始发生,例如 => 当我执行 a 时POST ThingsisPending暂时是正确的,并且依赖于该属性的其他组件也会显示它们的微调器。

这是我的代码

那么,如果我需要为每个操作表示微调器(或错误),我该怎么办?

我应该做类似的事情吗

看起来方法不对

0 投票
1 回答
4183 浏览

reactjs - Redux 和保存数据?

我来自 RoR 世界,想使用 Redux 和 React 更改我的应用程序。

React 很容易理解,你构建它并使用 web-sockets 连接到 Redux(为什么不只是 xhr?),Redux 接受不同的操作并响应 React 等。

我不明白的是,您是否将所有用户都保存在redux商店中?还是您使用另一个 noSQL 来保存它们?当我终止 redux 存储并重新启动它时,我的数据会消失吗?我找不到描述这个的文章?

0 投票
1 回答
1426 浏览

reactjs - 使用 react-router-redux 可以在加载路由状态后使用 Link 组件进行过渡

我一直在使用react-router-redux,它允许我的位置很好地存储在状态中,并允许我使用 react-router 来定义路由和路由之间的链接。

一个问题似乎是,当我需要使用<Link />这样的组件进行导航时:

这将触发路由的更改,并在加载新路由时,在这种情况下是<Movie />路由,加载电影页面的状态。

这对于页面之间的转换并不能很好地工作,因为新页面在导航时将是空白的,或者您可以放入一个加载器,但实际上它不应该导航到新页面,直到新页面的 api 调用已经加载。类似于pitchfork.comtheguardian.com等网站

这个实现已经在这个问题中讨论过,并且在真实世界示例reddit api 示例中使用了在页面转换之间仅使用加载器的方法

我的问题是,如果我想在导航之前在我的站点中加载新容器/路由的状态,我是否需要遵循 dax chen 在这个问题中建议的方法?

总而言之,答案是触发一个动作并使用 redux-thunk 我们可以通过调用新容器/路由的动作来预加载状态,然后在完成时我们使用 react-router-redux 的push()动作导航到页面

如果这是在转换之前预加载页面的推荐方法,那么我将更改我的react-router-redux-example和我当前的站点以使用这种方法。

加载新路线数据然后导航的操作将如下所示:

它将需要一些逻辑来识别要调用的新容器的操作以及要导航到的新路径。fetchData()它可能会调用新页面的容器组件上的静态方法。

所以这会使<Link />组件有些复杂,我只是在寻找一些关于这是否是正确方法的建议,或者我可能错过了更简单更推荐的方法。

0 投票
0 回答
25 浏览

javascript - 除非克隆/评估,否则 Promise 中的 React-native 数组显示为空

我不知道这是一个“陷阱”还是 Javascript、React-native 或它们的组合中的错误。关于 React-native 应用程序的一些基础知识:它使用react-reduxredux-persistredux-thunk.

我有一个在后台轮询并获取应用程序中对象的更新的 fetch。API 端点在没有数据更改时返回 304,当数据发生更改时,它返回一个更新对象数组。基本情况如下所示:

因此,正如评论所述,如果我执行 aconsole.log(json)它会返回一个空数组。但是,如果我再次记录相同的内容并调用它.lengthjson则会返回更新对象的数量。

如果我使用 lodash 并执行console.log(_.clone(json))它,那么它会给我预期的实际数组。但是,它似乎并没有在代码下游保持其“可读性”。

我无法调试下游发生的事情,因为我的日志记录语句停止工作。是什么导致了这种行为?这是否与redux-thunk承诺的不当实施有关?

0 投票
2 回答
1024 浏览

javascript - Redux 和承诺进度

我如何处理和承诺 redux 的进展?

我想在 promise 执行时显示一些旋转条或其他东西,我正在使用axios来处理请求,但是他们有一个 api 来处理请求的配置对象中这样的进度:

但我只能在 redux 操作中发送请求,例如:

如何在这些条件下处理进度事件?

0 投票
3 回答
265 浏览

reactjs - 在 redux+react web app 中,如何知道一个 async action 最终被 dispatch 到 state

Rudx-thunk 在调度异步操作方面做得很好,它最终会修改异步操作中获取的状态。但是我怎么知道它最终修改获取的 redux 状态的那一刻呢?

就我而言,我想从服务器读取配置,因为有些组件需要这些配置,所以我必须在获取配置后渲染整个应用程序。但到目前为止,我无法通过使用 redux-thunk 或任何其他 redux 异步中间件来解决问题。

更新 #1 显示一些代码来更好地表达自己。

以上看起来不错,但是由于该操作可能需要时间并且在组件首次渲染后更新状态,因此组件可能会显示意外结果。我真正想做的是(我只是写下渲染部分,其他应该一样):

或者

可能,我应该做第二种方式,只是害怕它不是redux-y。

无论如何,上面只是一个示例,显示有时我们确实需要在某些操作最终分派到 redux 状态时得到通知。

0 投票
1 回答
1421 浏览

javascript - Redux 在 reducer 之后不更新视图

已解决:字段形式的 defaultValue 不是我想的那样。

我不知道我在做什么[这里的化学狗图片]。

我的组件称为loadForm并通过 thunk 操作从 API 调用加载数据:

}

渲染:

this.props.appo实际上已更新,但视图没有改变:

在此处输入图像描述

更新

非常感谢你们的帮助,从一开始我的减速器就是:

为了降低复杂性,我删除了数组选项,用一个简单的字符串替换它,而且,我删除了所有其他减速器,所以我的减速器现在只是:

然后我注意到一些奇怪的事情:

结果:

在此处输入图像描述

因此,{this.props.eigentumer}在位置 1 和 2 中更新,但在 defaultValue={this.props.eigentumer}中没有更新,这就是视图未更新的原因。现在我需要阅读这篇文章以了解为什么会发生这种情况。

非常感谢你的帮助。

0 投票
1 回答
28637 浏览

redux - 想做 dispatch.then(...)

我使用 redux、react-redux、react-router、react-router-redux 和 redux-thunk。

我希望因此能够进行可调度

但我收到的消息then不是调度功能。

我怎样才能做到这一点?