Tengo una API que requiere algunos parámetros para filtrar según el parámetro pasado. Es similar a top localhost:8000/api/v1/products?page=1&user=62831ebc8cecf3c829c4b2d9&category=62831ebc8cecf3c829c4b2d9
Así que creé una acción de reacción.
export const listProducts = (page = '', user = '', category = '') => async (dispatch) => { try { dispatch({ type: PRODUCT_LIST_REQUEST }) const { data } = await axios.get( `${process.env.REACT_APP_API}/api/v1/products?&page=${page}&user=${user}&category=${category}` ) dispatch({ type: PRODUCT_LIST_SUCCESS, payload: data, }) } catch (error) { dispatch({ type: PRODUCT_LIST_FAIL, payload: error.response && error.response.data.message ? error.response.data.message : error.message, }) } }
La idea es que cuando envío dispatch(listProducts(1, user._id)
y dejo vacío el tercer parámetro, me devuelve Invalid category ''
¿Cómo puedo hacer que la API ignore los parámetros no enviados y solo use los parámetros enviados?
He intentado reemplazar (page = '', user = '', category = '')
con (page = null, user = null, category = null)
Ahora obtengo una Invalid category null
EDITAR: En algunos casos, me gustaría pasar solo categorías, mientras que en otros casos, me gustaría pasar solo usuario y página. ¿Cómo puedo hacer esto ${process.env.REACT_APP_API}/api/v1/products?&page=${page}&user=${user}&category=${category}
para aceptar solo datos en el objeto e ignorar lo que no está disponible