2016-03-02 40 views
5

Here podano przykład, jak importować niektóre zajęcia z modułu„Nie można rozwiązać symbol”:podczas korzystania ES6 `import` składni

import {ModalContainer, ModalDialog} from 'react-modal-dialog'; 

Jednak PhpStorm (ostatnie EAP) wyskakuje mi błąd:

Cannot resolve symbol 'ModalDialog'

zainstalowałem pakiet z npm install react-modal-dialog i jest obecny w node_modules.

Odpowiednik var {ModalContainer, ModalDialog} = require('react-modal-dialog'); działa dobrze.

+1

Czy ustawiłeś wersję językową js na harmonię skryptów ECMA? – winhowes

+0

Czy transponujesz kod przed jego wykonaniem? – naomik

+2

@winhowes Tak, dzieje się w obu trybach "ECMAScript 6" i "JSX Harmony". – AndreKR

Odpowiedz

4

Myślę, że to spowodowane przez PHPStorm. IDE nie może składać się przy składni understand przy importowaniu modułu CommonJS.

Mam to ostrzeżenie również podczas korzystania z WebStorm 2016.1.2.

Biorąc react i react-router jako przykład:

  • react jest modułem CommonJS opracowany składni ES5;
  • react-router został opracowany przy użyciu składni ES2015 i skompilowany przez Babel.

WebStorm 02.01.2016 można rozwiązać Link eksportowany przez moduł react-router, ale nie może rozwiązać createClass eksportowane przez moduł react.

Aktualizacja:

browser-sync jest modułem CommonJS opracowane z ES5 też. Ale działa dobrze na WebStorm, WebStorm może rozwiązać wszystkie API wyeksportowane przez browser-sync.

To zadziwiło mnie, że WebStorm nie może rozwiązać wyeksportowanego interfejsu API react.

+1

Istnieje wiele źródeł w Internecie, mówiąc, że PhpStorm rozumie ES6, twoje odpowiedzi twierdzą, że tak nie jest, proszę dodaj szczegóły/referencje – AndreKR

+0

@AndreKR Możesz porównać" reagować "z i" reagować-routerem ", IDE może rozwiązać API wyeksportowane przez 'Reaktor-router', ale nie' Reaguj'. – hegfirose

+0

To jest uzasadnione wyjaśnienie.Niestnie, 4 miesiące później wciąż nie mogę znaleźć obejścia. – EranSch

2

Napotkałem to podczas konfigurowania projektu React i wszystko co zrobiłem to pobierz definicję maszynopisu importu, w moim przypadku właśnie szukałem react.

enter image description here

Instrukcje dodawania bibliotek do projektu można znaleźć na webstorm's help page.