问题标签 [redux-actions]

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 投票
1 回答
20 浏览

performance - 在 React 和 Redux 应用程序中调度大量操作对性能有何影响?

动作对性能的影响有多大,更准确地说:调度所述动作?

假设在单个用户与 UI 的交互中,同一操作连续调度 10 次,这将如何影响性能?或者,它甚至会影响性能吗?

0 投票
0 回答
43 浏览

react-redux - Redux 连接的 React 组件在调用 GET api 请求之前不会更新

我的 react 应用程序使用 redux 连接组件从后端为项目页面呈现数据,因此我在 React Hook useEffect 中调用了 GET 调度,以确保在项目页面首次打开时始终呈现数据,并且只要有更改state project,组件将使用 connect redux 函数进行相应更新。但是,在我使用 DELETE API 请求减少新状态后,组件不会更新,只有当我发送另一个 GET 请求时,才会更新状态。所以我必须调用 2 个调度,一个用于 DELETE,一个用于 GET 以同步更新页面(正如您在handleDeleteUpdate函数中看到的那样),当我调度 POST 请求以添加更新时,同样的事情发生了(在handleProjectUpdate)。只有当我重新加载页面时,新更改的数据才会显示,否则不会同步发生,有人知道我的代码中的状态更新有什么问题吗?以及如何解决此问题,以便仅通过一个请求即可更快地加载页面?

我已经更改了减速器以确保状态没有发生突变并且正确更新。我也尝试在 handleDeleteUpdate 中使用异步函数来确保动作调度完成

我努力了

console.log(props.project.data.updates)

调用 props.deleteUpdate 后打印出更新列表,但updates状态中的列表似乎从未更改,但是当我重新加载页面时,updates会显示新列表

这是我为主要连接的 redux 组件、操作和组件的 reducers 文件的代码

行动

减速器

项目组件中的 updateCard 显示所有更新的列表

0 投票
1 回答
31 浏览

reactjs - 当用户直接点击产品详细信息页面时如何管理 redux 状态

我正在开发一个 Redux 应用程序,我遇到了一个我不知道如何处理的特殊情况。

假设我有一个ProductsList页面:example.com/products

在这个页面上,我正在调度getProductsredux 操作,它调用 API 并将产品存储在商店中。

在此页面上,我列出了所有产品。现在,用户点击一个产品并推送一个新的 URL,如下所示:example.com/products/product/1

在这个ProductDetails页面上,一个名为的 redux 操作setCurrentProduct被调度。

到目前为止,一切都很好。

但是,当用户example.com/products/product/1直接访问 URL 时,就会出现问题。

在这种情况下,setCurrentProduct操作会被调度,但它会失败,因为商店中还没有产品。

我想我可以在这个ProductDetails页面上添加一个 if-else 语句并检查产品是否存在于商店中,然后首先发送getProducts然后setCurrentProduct

但我觉得这是一个 hacky 解决方案。

也许,我错了,这是实际的解决方案。

有人可以指导我这个解决方案是否正确,如果不是,那么正确的解决方案是什么。

PS:我正在使用 NextJS。

0 投票
0 回答
19 浏览

reactjs - 在输入模糊上调度 Redux 操作是一个好习惯吗?

我的项目在 Nextjs 中,带有 Typescript 和 Redux。我有一个在 MongoDB 上创建产品的多步骤表单,我需要调度 setProduct() 函数来设置 Redux 并在刷新时保持输入值。我在输入模糊时发送它,这是一个好习惯吗?我不想使用useEffect().

0 投票
2 回答
67 浏览

reactjs - 登录反应redux后如何在导航栏上显示用户名

我的导航栏上有一个名为 Login 的导航链接(我使用了引导导航栏)。成功登录后,我想用 react-redux(不是 redux-toolkit)的用户名替换登录。请帮助我编写减速器和动作代码。由于我是 redux 的初学者,而且我不知道如何在 reducer 和 action 文件中编码,这让我很困惑。

导航栏组件 (Navbar.js)