I do understand Redux a bit, but I don't understand how you can put a function inside a function.
import api from '../utils/api';
import {
GET_PROFILE, PROFILE_ERROR
} from './types';
export const getCurrentProfile = () => async (dispatch) => {
try {
const res = await api.get('/profile/me');
dispatch({
type: GET_PROFILE,
payload: res.data
});
} catch (err) {
dispatch({
type: PROFILE_ERROR,
payload: { msg: err.response.statusText, status: err.response.status }
});
}
};
I am having issues with this line:
export const getCurrentProfile = () => **async (dispatch) => {}**
async (dispatch) => {}?dispatch does, but where do we get it and why are we using it on the two objects?yes. The getCurrentProfile returns a new function that takes one parameter.
Maybe they will use the function in a closure. Closures can be used to hide information.
Whatever is using the function you create will give the dispatch to the function when it calls it.