2016-02-19 13 views
32

Error: Missing class properties transformBłąd: Właściwości Brakujące klasy przekształcić

Test.js:

export class Test extends Component { 
    constructor (props) { 
    super(props) 
    } 

    static contextTypes = { 
    router: React.PropTypes.object.isRequired 
    } 

.babelrc:

{ 
    "presets": ["es2015", "react", "stage-0"], 
    "plugins": ["transform-class-properties"] 
} 

package.json:

"babel-core": "^6.5.1", 
"babel-eslint": "^4.1.8", 
"babel-loader": "^6.2.2", 
"babel-plugin-react-transform": "^2.0.0", 
"babel-plugin-transform-class-properties": "^6.5.2", 
"babel-preset-es2015": "^6.5.0", 
"babel-preset-react": "^6.5.0", 
"babel-preset-stage-0": "^6.5.0", 
"babel-register": "^6.5.2", 

Przeszukałem sieć i wszystkie poprawki kręcą się wokół: Aktualizacja do babel6, zmiana kolejności "stage-0" na "es2015". Wszystko, co zrobiłem.

Odpowiedz

44

OK, w końcu zorientowaliśmy się, moim webpack.config.js miałem:

module: { 
    loaders: [ 
     { 
     test: /\.js?$/, 
     exclude: /(node_modules|bower_components)/, 
     loaders: [ 
      'react-hot', 
      'babel?presets[]=react,presets[]=es2015,presets[]=stage-0' 
     ] 
     } 
    ] 
    } 

'babel?presets[]=stage-0,presets[]=react,presets[]=es2015'

musi być traktowane w taki sam sposób jak .babelrc, przełączane etap-0 będzie po es2015 i to kompiluje się idealnie.

+16

Nie trzeba oba. Jeśli masz '.babelrc', możesz porzucić wszystkie parametry w twoim programie ładującym. – loganfsmyth

+0

Po prostu rozwiązałeś swój problem, dostosowując swój plik webpack.config.js? Mam do czynienia z tym samym problemem, ale używam przeglądarki internetowej i nie mogę się jej pozbyć. –

+2

Używam przeglądania i używanie tego odera "es2015", "reagować", "stage-0" pracował dla mnie. Ustawiłem config w .babelrc. – lipp

0

@speak ma rację, ale trzeba zmienić kolejność

loaders: [ 
 
    'react-hot', 
 
    'babel?presets[]=react,presets[]=es2015,presets[]=stage-0' 
 
]

1

miałem ten błąd, ponieważ używałem stage-3 zamiast stage-0.

0

Ja również spełniać ten błąd, ponieważ z użyciem presetów env: "presets": [ "react", "es2015", "stage-0", ["env", { "modules": false }]], i po tym, jak usunąć ustawień env, to działa dobrze

0

Poznałem ten sam problem przy użyciu koa-react-view. Zainspirować tych odpowiedzi i ostatecznie ustalone to z następującego kodu w koa server.js:

const register = require('babel-register'); 
 

 
register({ 
 
    presets: ['es2015', 'react', 'stage-0'], 
 
    extensions: ['.jsx'] 
 
});