LogoLogo
  • Eventrix
  • Introduction
    • Installation
    • Quick start
    • Getting started
    • Demo
    • About
  • Devtools - EventrixDebugger
  • Use cases
    • Handle errors
    • Simple form management
    • Communication between components
    • Next.js
    • Basic setup on project
    • Fetch list and display in component
  • CONTEXT
    • EventrixProvider
    • PersistStoreGate
    • EventrixScope
  • MIGRATION
    • Redux -> Eventrix
  • Receivers
    • EventsReceiver
    • RequestsHandler
    • fetchToStateReceiver
    • fetchStateReceiver
    • fetchHandler
  • HOC
    • withEventrix
    • withEventrixState
  • HOOKS
    • useEventrixState
    • useEmit
    • useEvent
    • useEventState
    • useFetchToState
    • useReceiver
    • useFetchState
  • CLASS DECORATORS
    • @useEventrix
    • @receiver
    • @fetchToState
    • @listener
  • COMPONENT DECORATORS
    • @eventrixComponent
    • @eventListener
    • @stateListener
    • @eventrixState
Powered by GitBook
On this page

Was this helpful?

  1. Use cases

Fetch list and display in component

Create receiver that will be fetch users list.

/eventrix/receivers.js
import axios from 'axios';
import { EventsReceiver } from 'eventrix';

const fetchUsersReceiver = new EventsReceiver('fetchUsers', (eventName, eventData, stateManager) => {
    return axios.get('https://myDomain.com/users').then(({ data: usersList }) => {
        stateManager.setState('users', usersList);
    });
});

export default fetchUsersReceiver;

Register that receiver in eventrix.

eventrix.useReceiver(fetchUsersReceiver)

Create component to display list of users.

/components/UsersList.jsx
import React, { useEffect } from 'react';
import { useEventrixState, useEmit } from 'eventrix';

const UsersList = () => {
    const [users] = useEventrixState('users');
    const emit = useEmit();
    useEffect(() => {
        emit('fetchUsers');
    }, [emit])
    return (
        <div>
            {users.map(user => <div key={user.id}>{user.name} {user.surname}</div>)}
        </div>
    );
}

export default UsersList;

PreviousBasic setup on projectNextEventrixProvider

Last updated 3 years ago

Was this helpful?