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.

This hook is not recomended. Please use fetchToStateReceiver if You can.

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