---
description: Is used to inject actions into component
---

# @ComponentState decorator

When component is created `@ComponentState` decorator creates does two things:

* Creates instance of state actions
* Creates two `@Input` parameters: `statePath` and `stateIndex`

Component state takes 1 parameter but it can be either action class or function that resolves action class:

```typescript
@ComponentState(TodosStateActions)
```

or

```typescript
@ComponentState((component: TodosComponent) => {
  return component.isStateA
    ? A_StateActions
    : B_StateActions;
})
```

