web-dev-qa-db-ja.com

IEで「矢印関数」が機能しないのはなぜですか?

以下のコードはIE 11で機能しません。コンソールで構文エラーをスローします

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

視覚化のためのd3.js二部チャートの使用

上記のステートメントで問題を引き起こすこのコードd=>(d.part=="primary"? -40: 40)

51
prakashkadakol

矢印関数を使用しています。 IE11はそれらをサポートしていません。代わりにfunction関数を使用してください。

Babel's 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";
});
76
T.J. Crowder

IE 11をサポートする必要がある場合は、矢印関数の使用を避けてください サポートされていないため

これらを通常の関数に変更すると、コードは期待どおりに動作するはずです

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";
});
14
Felipe Sabino