Me estoy encontrando en un agujero de conejo lol. Estoy haciendo una llamada para obtener una lista de objetos y la llamada es exitosa, y puedo ver que se devuelven los datos. Pero no entiendo por qué columnDefs no se actualiza con los datos de éxito.
defaultState = { columnDefs: [] } export default function MarketReducer(state = defaultState,action ){ switch (action.type){ case GET_MARKETING_LIST: return Object.assign({}, state, { columnDefs: [], }); case GET_MARKETING_SUCCESS: return Object.assign({}, state, { columnDefs: action.payload.data.column_headers.columnDefs, }); case GET_MARKETING_FAIL: return Object.assign({}, state,{ error: action.error, columnDefs: [], }); default: return state; } } export function getMarketingProspects() { return { type: GET_MARKETING_LIST, payload: { request: { url: "/marketing/customers", method: "GET" } } }; }Luego tengo un botón que activa getMarketingProspects(). El problema es que la tienda no se actualiza.
La razón por la que no se configuró en la tienda es porque las acciones se llamaron diferentes, tuve que agregar "LISTA" al éxito y fallé, luego funcionó.
GET_MARKETING_LIST: GET_MARKETING_LIST_ÉXITO: GET_MARKETING_LIST_FAIL:
export function getMarketingProspects() { return (dispatch) => { dispatch({ type: GET_MARKETING_LIST, payload: { request: { url: "/marketing/customers", method: "GET" } } }) } }ahora, en el botón de acción, debe enviar la función getMarketingProspects. Como esto.
onClick={()=> useDispatch(getMarketingProspects())}