11
votes

Redux ne met pas à jour les propriétés dans IE11

Je rencontre une question étrange concernant Reag & Redux dans Internet Explorer 11.

J'ai créé une application réagissante avec Redux & Thunk + PRESS PRESS PRESPRESS Midassware. Ladite application fonctionne complètement en chrome, safari et firefox, mais lorsqu'il est en cours d'exécution dans Internet Explorer 11, les accessoires ne sont pas mis à jour par REAC / REDUX.

Tout en vérifiant l'onglet Réseau, je peux voir que les demandes HTTP sont en cours tiré juste bien. L'enregistrement du résultat de celui-ci dans les réducteurs REDUX donne également le résultat attendu. Mais il semble que le retour du nouvel état ne met pas à jour les accessoires. Ou déclencher tout re-rendu de composants du tout. (Seulement dans IE).

J'ai essayé Google de voir s'il y avait des gens dans le même bateau, mais je n'ai pas pu trouver de faire correspondre mon problème.

TLDR ; Redux ne met pas à jour des accessoires et déclencher la ré-rendue / mise à jour des composants après son état de retour. (seulement dans IE11).

réducteur: xxx

action.payload a la valeur correcte; Le retour ne semble pas mettre à jour les accessoires.

Aucune erreur dans la console

résolu je devais ajouter un objet .Assign Polyfill; Je ne savais pas que c'était nécessaire après avoir utilisé Babel


1 commentaires

J'avais rencontré ce qui semblait être ce problème. Il s'est avéré que je devais appliquer le cache en panne sur mes demandes Ajax.


3 Réponses :


-1
votes

IE 11 ne prend pas en charge les promesses, vous devrez utiliser un polyfill comme -> https: / /github.com/stefanpenner/es6-Pomise


1 commentaires

Ce n'est pas le problème; Comme je l'ai dit, les demandes HTTP sont bien tirées. J'utilise déjà un polyfill pour cela :)



6
votes

Ce problème est dû au pauvre ES6 Support IE11. J'ai constaté que vous avez besoin de Polyfill à la fois promesses et objet.Assign .

Quant à Babel, il est probablement due à Babel Transpiling uniquement de code non standard au code standard. La plupart des navigateurs implémentent déjà promesses / objet.Assign Par défaut, donc je suppose que les dernières versions Babel n'ont pas besoin de le transpercer à l'ES5 Code plus


2 commentaires

J'ai trouvé que j'avais aussi besoin d'un polyfill pour le symbole. Importation du Babel-Polyfill au point d'entrée à mon code était la clé.


Le Babel-Polyfill a correctement fixé tous les problèmes ci-dessus IE11 pour moi, mais le re-rendu n'est toujours pas déclenché.



2
votes

a eu un problème similaire, mais la solution n'était pas liée à la polyfill (Babel-Polyfill), car je les avais déjà importées, mais à ma configuration d'instance Axios. J'ai trouvé la réponse à mon problème ici . Fondamentalement, tout ce que je devais faire était de désactiver la mise en cache en ajoutant l'en-tête suivant dans ma configuration d'instance Axios:

p>

const instance = axios.create({
  headers: {
    Pragma: "no-cache"
  }
});


0 commentaires