Leveraging ngrx: Executing a reducer both prior to and following an effect

I need help resolving the following warning message:

ESLint: Calling 'store.dispatch' in 'Effect' is not allowed.

The specific effect I am working with performs the following tasks:

  • Locks data in the store using a reducer
  • Updates the backend data
  • Unlocks the data

Here is the code snippet:

    this.actions$.pipe(
              ofType(actions.update),
              switchMap(action => {
                this.store.dispatch(actions.lockData(action.data.id));
                return this.backendService.update$(action.data)
                 .pipe(
                    map(...),
                    catchError(...),
                    finalize(()=> this.store.dispatch(actions.unlockData(action.data.id))  
                    )

What would be the correct way to address this issue?

Answer №1

To secure or release the information, you can use the command that initiates the change and the command that comes back from the change.

In this situation, it involves using `actions.update` and the command received in the `map` function.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Utilizing Angular service in a separate file outside of components

In my library file product.data.ts, I have a collection of exported data that I need to update based on a value returned by a featureManagement service. Our team regularly uses this service and includes it in the constructor of any component using standard ...

How to handle type errors when using properties in Vue3 Single File Components with TypeScript

I've hit a roadblock while attempting to utilize properties in Vue3. Despite trying various methods, I keep facing issues during the type-check phase (e.g.: yarn build). The project I'm working on is a fresh Vue3-ts project created using Vite. B ...

Having trouble accessing gridApi in Ag-Grid while using React hooks with Typescript?

I have implemented a function component in React with Typescript. This is how my component is structured: const Table = (props: TableProps) => { const [gridApi, setGridApi] = React.useState(() => {}) const gridOptions = { rowData: rowData, ...

Throttle user input before making an HTTP request

Currently, I have set up a 2-way binding for the input to appRequestParams.appName. The fetchApps() method is called on every keyup event. My goal is to debounce the input so that backend HTTP requests are not triggered immediately upon every keyup. I ha ...

Eliminating the "undefined" error in TypeScript within a React application

Having recently dived into TypeScript configuration, I encountered an issue when coding and tried to resolve it by encapsulating the code block in an if statement checking for usersData to eliminate the "Object is possibly undefined" errors. However, upon ...

Angular 7 triggers the event on only the initial click

I am facing an unusual problem while trying to implement a file upload feature in my Angular application. The issue is that the event only gets triggered on the first click. template <input multiple type="file" (change)="onFi ...

Develop a chart and compute the total of each individual column

I am interested in creating a class library that can manage user inputs by allowing them to add columns in the UI with a column name and comma-separated values. My goal is to perform calculations with this data and display it in a data table. Specifically, ...

Creating reusable TypeScript function argument types

There is a function that I have defined in the following way: function getRangeBounds(start: number, stop?: number, step?: number) { if (step === undefined) step = 1; const actualStart = start !== undefined && stop !== undefined ? start : 0; ...

Utilize an array of JSON objects to populate an array of interfaces in Angular/Typescript

I am currently facing a dilemma - my code is functioning without any errors when executed, but my text editor is flagging an issue stating that the property 'categories' does not exist on type 'CategoryInterface[]' (specifically on the ...

Using imports with namespaces in TypeScript: A guide

I am facing an issue with two classes in separate files, where one extends from the other. The base class contains some import statements for node modules. I am confused as to why the derived class (located in a different file) is not recognizing the base ...

Tips for incorporating conditional types into function parameters based on existing input

The title might be confusing, so allow me to clarify. My Objective I am referring to the code snippet below. I aim to specify the route property based on the types property as either a string or a function that returns a string. The Code Let's b ...

Angular router for displaying multiple view groups

What is the most effective strategy for handling two groups of views in Angular? Let me explain how I typically structure my layout in app.component.html: <app-header></app-header> <router-outlet></router-outlet> <app-footer> ...

Complicated connections between TypeORM and MySQL

Currently leveraging TypeORM in tandem with MySQL, my database comprises of two main Entities, namely User and Project: @Entity() class User { @PrimaryGeneratedColumn('uuid') id: string; @Column({}) name: string; } @Entity() ...

Removing options that are not selected from dropdown lists in an Angular 7 table

My current task involves exporting multiple tables to Excel. I have a component that is present in all other components and handles the exporting function. Each component contains a table with the id 'table' that needs to be exported. The issue ...

Utilizing a navigation menu to display various Strapi Collection pages within a single Angular Component

I have set up a collection in Strapi called Pages and I am looking to display them in the same component using my Navigation Bar Component. However, I am unsure of how to achieve this. Currently, all the data from the Collection is being displayed like th ...

LibraryManagedAttributes type cannot be assigned to the Type type

I am currently working on developing an array field component that has the capability to accept any React Functional component which possesses BaseProps. However, I seem to encounter an error when attempting to render the Component within ArrayField. http ...

Retrieving the <html> tag within an Angular component

In an Angular component, the <body> and <head> tags can be accessed by injecting DOCUMENT as shown below: import { DOCUMENT } from '@angular/common'; import { Inject } from '@angular/core'; export class TestComponent { c ...

How can I implement a user notification service using rxjs within Angular?

As a newcomer to reactive programming, I am exploring ways to create an Angular service that can present notifications to the user. Check out what I have accomplished so far: https://stackblitz.com/edit/angular-rxjs-notifications?file=app%2Fapp.component. ...

Finding it frustrating that filtering doesn't work properly in the PrimeNG table component within Angular?

My current objective is to filter via Instances, and I have implemented the following code: Within my component.ts file: import { Component, OnInit } from "@angular/core"; import { AlertingService } from "src/app/services/alerting.service"; import { Alert ...

Error: Conversion of "2018-01-01-12:12:12:123456" to a date is not possible for the 'DatePipe' filter

<td>{{suite.testSuiteAttributes && suite.testSuiteAttributes.modifiedTimestamp | date: 'yyyy-MM-dd' }} </td> I am trying to display the date in the "05-Feb-2018 11:00:00 PM CST" CST format, but I keep getting an ...