useFetchToState

This hook fetch data and put it to 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 axios from 'axios';
import { useFetchToState } from 'eventrix';

const removeUserFetch = (userData, state, emit) => {
    return axios.delete(`http://somedomain.com/users/${userData.id}`).then(() => {
        return state.users.filter(item => item.id !== userData.id);
    });
}

const DeleteUserButton = ({ user }) => {
    const [emitFetch] = useFetchToState('users:remove', 'users', removeUserFetch);
    
    const removeUser = useCallback(() => {
        emitFetch(user);
    }, [emitFetch, user])
    
    return (
        <button onClick={removeUser}>
            Remove user
        </button>
    );
}

Last updated

Was this helpful?