@DataAction
Before (origin NGXS behavior)
export class AddTodo {
public static type = '[Add todo]';
constructor(public payload: string) {}
}
@State<string[]>({
name: 'todo',
defaults: [],
})
@Injectable()
export class TodoState extends NgxsDataRepository<string[]> {
@Action(AddTodo)
public add({setState}: StateContext<string[]>, {payload}: AddTodo): void {
setState((state) => state.concat(payload));
}
}@Component({
selector: 'app',
template: `
<input #inputElement />
<button (click)="addTodo(inputElement.value)">Add todo</button>
`,
})
class AppComponent {
constructor(private store: Store) {}
public addTodo(value: string): void {
this.store.dispatch(new AddTodo(value));
}
}After (Data-plugin behavior)
Don't use nested actions
What difference between this.ctx.setState and this.setState?
this.ctx.setState and this.setState?


Payload
Payload



How to check whether the code is in NgZone?
NgZone?Use @DataAction without subscription
@DataAction without subscriptionLast updated