96 votes

"La fonction flèche" ne fonctionne pas dans IE, pourquoi?

le morceau de code ci-dessous ne fonctionne pas dans IE 11, une erreur de syntaxe est générée dans la console

 g.selectAll(".mainBars").append("text").attr("x",d=>(d.part=="primary"? -40: 40)).attr("y",d=>+6).text(d=>d.key).attr("text-anchor",d=>(d.part=="primary"? "end": "start"));
 

Utilisation du graphique bipartite d3.js pour la visualisation

ce code causant le problème dans l'instruction ci-dessus d=>(d.part=="primary"? -40: 40)

130voto

T.J. Crowder Points 285826

Vous êtes à l'aide de la flèche fonctions. IE11 ne les supporte pas. Utiliser function fonctions à la place.

Voici Babel est la traduction de l'ES5:

g.selectAll(".mainBars").append("text").attr("x", function (d) {
  return d.part == "primary" ? -40 : 40;
}).attr("y", function (d) {
  return +6;
}).text(function (d) {
  return d.key;
}).attr("text-anchor", function (d) {
  return d.part == "primary" ? "end" : "start";
});

22voto

Felipe Sabino Points 7853

Évitez d'utiliser les fonctions de flèche si vous devez prendre en charge IE 11, car il n'est pas pris en charge.

Changez-les en fonctions habituelles et votre code devrait fonctionner comme prévu

 g.selectAll(".mainBars").append("text").attr("x",function(d) { 
  return d.part=="primary"? -40: 40;
}).attr("y",function(d){
  return +6;
}).text(function(d) { 
  return d.key;
}).attr("text-anchor", function(d) { 
  return d.part=="primary"? "end": "start";
});
 

1voto

AmerllicA Points 1

Il est un moyen pratique et rapide pour votre transpiling ES6 codes à ES5.1 pour travailler en IE . Rendez-vous sur le site Web de Babel, puis collez vos codes dans la zone de gauche et copiez le code de la boîte de droite transféré dans la version précédente de JavaScript .

Par exemple, votre code est transpilé en:

"use strict";

 g.selectAll(".mainBars").append("text").attr("x", function (d) {
  return d.part == "primary" ? -40 : 40;
}).attr("y", function (d) {
  return +6;
}).text(function (d) {
  return d.key;
}).attr("text-anchor", function (d) {
  return d.part == "primary" ? "end" : "start";
});
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X