es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo navegar a la página de actualización/detalles después de un POST en RTK query

Tengo un formulario con un método POST en REACT RTK-query y luego debería navegar al segundo paso, pero para eso necesito conocer la id del registro recién creado. La id no se envía en el POST, sino que se autoincrementa en el backend. No quiero navegar a la vista de lista para obtener esa id, sino directamente.

const [addMyModel] = useNewMyModelMutation();
const handleSubmit = (e: { preventDefault: () => void; }) => {
    e.preventDefault();
    const my_model = {
        "user_id": user_id, 
        "date_time_field": new Date(),
        "icm": icmChoice,
        ...
    };

    dispatch(setUniqueFilters(unique_filters))
    //localStorage.setItem('unique_filters', JSON.stringify(unique_filters))
    //localStorage.setItem('selection_positions', JSON.stringify(positions))
    //localStorage.setItem('my_model', JSON.stringify(my_model))
    addMyModel(my_model)
    push(`/icm/mymodels/list`) // push(`/icm/mymodels/${answer_question}`);
};

¿Cuál podría ser la mejor solución?
– Intentar enviar la id en la respuesta desde el backend después del POST (Django Rest Framework),
– Cambiar la clave primaria en el backend de manera que conozca la id antes de handleSubmit (lo hice antes, pero olvidé la razón por la que revertí todo).
– Guardar el paso 1 en el localStorage (pero luego habrá problemas al actualizar registros anteriores),
– Guardar el paso 1 en el estado (pero entonces no puedo actualizar).

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en Reactjs, Typescript, post, primary-key y RTK-query, la mejor solución sería intentar enviar el id como respuesta desde el backend después de realizar el POST (Django Rest Framework). Esto asegurará que el id esté disponible en el frontend, lo que permitirá navegar directamente al segundo paso sin tener que pasar por la vista de lista para obtener el id. Cambiar la clave primaria en el backend puede no ser la mejor solución, ya que podría generar otros problemas que ya se han experimentado. Guardar el paso 1 en el localStorage podría presentar desafíos al actualizar registros anteriores, mientras que guardar el paso 1 en el estado no sería viable, ya que no se puede refrescar. Por lo tanto, devolver el id en la respuesta desde el backend después del POST sería una solución eficiente para el problema.

Comments are closed.