web-dev-qa-db-fra.com

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

le morceau de code ci-dessous ne fonctionne pas dans IE 11 il génère une erreur de syntaxe 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 provoquant le problème dans l'instruction ci-dessus d=>(d.part=="primary"? -40: 40)

40
prakashkadakol

Vous utilisez des fonctions de flèche. IE11 ne les prend pas en charge. Utilisez plutôt les fonctions function.

Voici Babel's traduction de cela en 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";
});
65
T.J. Crowder

Évitez d’utiliser des fonctions de flèche si vous devez prendre en charge IE 11 en tant que 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";
});
13
Felipe Sabino