# fetchToStateReceiver

| **Attribute name** | **Type**                                    | **description**                                                                    |
| ------------------ | ------------------------------------------- | ---------------------------------------------------------------------------------- |
| eventName          | string                                      | EventsReceiver event name                                                          |
| statePath          | string                                      | State name or path to state that will be replaced by fetch method response         |
| fetchMethod        | (eventData: any, state: any): Promise\<any> | Fetch method. Method will be called when eventName emitted and must return Promise |

fetchToStateReceiver method was created for fast state manage. You create method that return promise with new state. When event will be emited, method will be called and promise response replace required state.

{% tabs %}
{% tab title="Javascript" %}

```jsx
import { fetchToStateReceiver } from 'eventrix';
import axios from 'axios';

const removeUser = (eventData, state, emit) => {
    return axios.delete(`http://somedomain.com/users/${eventData.id}`)
                .then(() => {
                    return state.users.filter(item => item.id !== eventData.id);
                });
}
const receiver = fetchToStateReceiver('users:remove', 'users', removeUser);

export default receiver;
```

{% endtab %}

{% tab title="Typescript" %}

```typescript
import axios from 'axios';
import { fetchToStateReceiver } from 'eventrix';
import { EmitI } from 'eventrix/types/interfaces';
import { StoreState, User } from '../interfaces';

const removeUser = (eventData, state, emit): Promise<User[]> => {
    return axios.delete(`http://somedomain.com/users/${eventData.id}`)
                .then(() => {
                    return state.users.filter(item => item.id !== eventData.id);
                });
}
const receiver = fetchToStateReceiver('users:remove', 'users', removeUser);

export default receiver;
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://eventrix.gitbook.io/eventrix/receivers/fetchtostatereceiver.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
