Quiero usar Redux para realizar múltiples envíos al mismo punto final para obtener diferentes respuestas, sin embargo, no estoy seguro de cómo puedo almacenarlos mejor dentro de la tienda Redux...
miAcción.js
export const GET_DATA = 'GET_DATA'; export const GET_DATA_SUCCESS = 'GET_DATA_SUCCESS'; export const GET_DATA_ERROR = 'GET_DATA_ERROR'; export const getData = (path) => ({ type: GET_DATA, agent: agent.getData.get, agentData: path });myReducer.js
export default (state = {}, action) => { ... switch (action.type) { ... case GET_DATA_SUCCESS: newState = action.payload; break; ...Llamaré a la API así:
const mapDispatchToProps = dispatch => { getData: path => getData(path); } ... // Using dispatch getData('/myDataPath');agente.js
... getData : { get = path => performGet('https://my.url/data' + path); }Ahora sé que esto funciona perfectamente bien para realizar un solo GET al punto final y almacenarlo en la tienda Redux en una sola entrada.
¿Hay alguna forma en la que pueda almacenar múltiples respuestas en la entrada de la tienda Redux?
Podría usar una propiedad dinámica usando la notación de paréntesis en su estado en función de agentData u otra pieza de identificación de su acción.
Se vería algo como esto:
reductor
export default (state = {}, action) => { ... switch (action.type) { ... case GET_DATA_SUCCESS: newState = { ...state, // Keep all the other values (agentData entries) [action.agentData]: action.payload // Add/overwrite the current one }; break; ...