it-swarm.com.de

"Pfeilfunktion" funktioniert im IE nicht, warum?

der folgende Code funktioniert in IE 11 nicht, er gibt einen Syntaxfehler in der Konsole aus 

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"));

Verwenden von d3.js zweiteiligem Diagramm zur Visualisierung

dieser Code verursacht das Problem in der obigen Anweisung d=>(d.part=="primary"? -40: 40)

40
prakashkadakol

Sie verwenden Pfeilfunktionen. IE11 unterstützt sie nicht. Verwenden Sie stattdessen function-Funktionen.

Hier ist Babel's Übersetzung von 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

Vermeiden Sie die Verwendung von Pfeilfunktionen, wenn Sie IE 11 unterstützen müssen, da es nicht unterstützt wird

Ändern Sie diese in reguläre Funktionen und Ihr Code sollte wie erwartet funktionieren

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

Bevor es sich bei Pfeilfunktionen um Pfeilfunktionen handelte, handelte es sich im Allgemeinen um reguläre JS functions. Mit IE11 müssen wir also nur einen Schritt zurück in die Vergangenheit machen

var fruits=["Apple","banana","orange"];

var modernResult=fruits.find(e => e.includes("nana"));
console.log(modernResult);

var IEresult=fruits.find(function(e){return e.includes("nana")});
console.log(IEresult);

1
Szél Lajos