в настоящее время у меня есть одна проблема для моего проекта, которая заключается в том, что моя функция стрелок не может перейти из моего собственного импортированного модуля.Я пытаюсь объяснить своими примерами:
Это мой файл .babelrc
{
"plugins": [
"transform-object-rest-spread",
"transform-object-assign",
"transform-class-properties",
"react-html-attrs",
"syntax-dynamic-import",
"react-hot-loader/babel",
"transform-es2015-arrow-functions",
"transform-es2015-function-name",
"transform-es2015-shorthand-properties"
],
"presets": [
[
"env",
{
"targets": {
"browsers": [
"Chrome >= 52",
"FireFox >= 44",
"Safari >= 7",
"ie >= 9",
"last 4 Edge versions"
]
},
"useBuiltIns": true,
"debug": true
}
],
"react",
"es2015"
]
}
, а это мой package.json
"devDependencies": {
"babel-core": "^6.26.0",
"babel-loader": "^7.1.5",
"babel-plugin-react-html-attrs": "^2.1.0",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
"babel-plugin-transform-es2015-function-name": "^6.24.1",
"babel-plugin-transform-es2015-shorthand-properties": "^6.24.1",
"babel-plugin-transform-object-assign": "^6.22.0",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-preset-env": "^1.6.1",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-0": "^6.24.1",
"babel-preset-stage-3": "^6.24.1",
"webpack": "^3.1.0",
"webpack-hot-middleware": "2.18.2",
"webpack-merge": "4.1.0",
"webpack-node-externals": "^1.7.2"
}
, а это мой babelКонфигурация загрузчика в webpack.config
module: {
rules: [
{
test: /\.js[x]$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: "babel-loader"
}
},
{ test: /\.(png|jpg|jpeg|gif|svg|woff|woff2|eot|ttf)$/, use: 'url-loader?limit=25000' }
]
}
С этим конфигом я попробовал два примера: когда функция стрелки находится в корневых компонентах, она перенесла функцию стрелки в современный javscript, но когда я импортировала функцию издругой файл, и он импортирует функцию стрелки внутри моего компонента, и он получает ошибку в IE11.
Первый работающий пример:
import React from 'react';
const testing = data => {
console.log(data);
return data;
}
class App extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div>{testing("Hi, this is testing.")}</div>
)
}
}
Но когда я перемещаю функцию стрелки в другие файлы и импортируюк корневому приложению он больше не работает в IE11, и я проверяю, внутри файла комплекта появляется стрелка "=>" в файле комплекта, которая не передается в функцию.
Примеры 2, которые не доходят до транспилирования:App.jsx
import React from 'react';
import testing from "./testing"
class App extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div>{testing("Hi, this is testing.")}</div>
)
}
}
testing.js
const testingFunction = data => {
return data;
};
export default function testing(data){
return testingFunction(data);
}
Преобразование функции стрелки не преобразует пример 2 testing.jsx testingFunction () Моdern javascript
Я что-то пропускаю и извиняюсь за свой ломаный английский.Спасибо.