-1
votes

Reprendre Redux Action ne fait rien

à Redux j'ai créé une autre action qui vient de copier un précédent fonctionnement, mais cela ne fonctionne pas.

Celui qui fonctionne: P>

export const deleteEntry = itemId => {

  console.log("action delete 1") // step 1

  return async dispatch => {

    console.log("action delete 2") // step 2

    const response = await axios.delete(
      `http://localhost:5000/api/db/deleteitem/${itemId}`,
      itemId
    )

    try {

      console.log("action delete 3") // step 3

      await dispatch({ type: DELETE_ENTRY, payload: response })
    } catch (error) {
      console.log("await error", error)
    }
  }
}


6 commentaires

Il semble que vous devez supprimer l'entrée avec ItemID. Et vous utilisez axios.post , je vous suggère d'utiliser axios.delete . Sinon, ça a l'air bien.


Cela pourrait aider: Stackoverflow.com/questions/51369563/...


Est-ce être expédié? Pouvez-vous envoyer quelque chose comme Dispatch ({Type: 'commencez à supprimer'}) Avant quoi que ce soit asynchrone? Est une demande faite? Dans ce navigateur, il y a une chose appelée Dev Outils, qui dispose d'un onglet Réseau où vous pouvez voir l'activité de réseau et, s'il est installé, vous trouverez un onglet Redux (Redux Dev Outils) qui peut être très utile lors de l'affichage des questions de manière à mieux qualité que il ne fonctionne pas ou il ne fait rien


c'était déjà .Delete mais .post est juste un essai


@MARCODISCO Il est probable que vous n'envisagez pas l'action de votre composant, si vous utilisez React Redux Connect, vous appelez accessoires. Supprimer (ID) à partir de votre composant ou Const Dispatch = OccasionIspatch (); Dépêche (Deleterentry (ID)) Si vous utilisez le crochet.


Oui! Qui était! Je "juste" oublié expédié d'où je l'appelle. Merci beaucoup!


3 Réponses :


0
votes

Vous devez supprimer l'élémentId, en utilisant axios.delete au lieu de axios.post

Vous devez également mettre votre delete_Entry comme 'delete_entry' ou bien votre réducteur ne comprendra pas


1 commentaires

Non, vous devez le mettre entre les crochets au travail ( '' ) car dans vos réducteurs, c'est comme: case 'delete_entry':



0
votes

La raison pour laquelle le premier journal passe, c'est parce que cela fait partie du créateur d'action. Normalement, un créateur d'action renvoie un objet en forme de {type: , charge utile: } , mais dans ce cas, il renvoie une nouvelle fonction, appelée "Thunk ".

Comment cette action est-elle expédiée?

Pour que cela fonctionne, vous devez inclure le middleware de Redux-thunk, que s'il reçoive une fonction via Dispatch (...) , exécute cette fonction.

Lisez sur Thunks ici


0 commentaires

0
votes

Merci à @hmr, j'ai juste oublié Dispatch (Supprimertry (item.itemid)) lorsque j'appelle l'action


0 commentaires