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. HOOKS

useEventState

This hook save last emitted event data in state and return state.

If You want use hooks, hocs or component decorator You must use EventrixProvider in Your application. Go to "EventrixProvider" page in "Context" section for more details.

import React from 'react';
import { useEventState, useEmit } from 'eventrix';

const UndoDeleteUserButton = () => {
    const [eventState, setEventState] = useEventState('removeUser');
    const emit = useEmit();
    const addUser = useCallback(() => {
        emit('addUser', eventState);
        setEventState(null);
    }, [emit, eventState, setEventState]);
    if (!eventState) {
        return null;
    }
    return (
        <button onClick={addUser}>
            Undo user delete
        </button>
    );
}
import React from 'react';
import { useEventState, useEmit } from 'eventrix';
import { User } from './interfaces';

const UndoDeleteUserButton = () => {
    const [eventState, setEventState] = useEventState<User | undefined | null>('removeUser');
    const emit = useEmit<User>();
    const addUser = useCallback(() => {
        if (eventState) {
            emit('addUser', eventState);
            setEventState(null);
        }
    }, [emit, eventState, setEventState]);
    if (!eventState) {
        return null;
    }
    return (
        <button onClick={addUser}>
            Undo user delete
        </button>
    );
}
PrevioususeEventNextuseFetchToState

Last updated 3 years ago

Was this helpful?