Pracowałem z create-react-app
i natknąłem się na ten problem, gdzie dostaję Home does not contain an export named Home
.
Oto jak skonfigurowałem mój App.js
plik:
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import { Home } from './layouts/Home'
class App extends Component {
render() {
return (
<div className="App">
Hello
<Home />
</div>
)
}
}
export default App;
Teraz w swoim layouts
folderze mam Home.js
plik. który jest ustawiony jak następujący.
import React, { Component } from 'react';
class Home extends Component{
render(){
return(
<p className="App-intro">
Hello Man
</p>
)
}
}
export default Home;
Jak widać, eksportuję Home
komponent, ale w konsoli pojawia się błąd, który mówi o tym.
Co się dzieje?
Posługiwać się
zamiast
Usuń
{}
z domuźródło
Jest to przypadek, w którym pomieszałeś domyślne eksporty i nazwane eksporty.
Jeśli
named
masz do czynienia z eksportami, jeśli spróbujesz je zaimportować, powinieneś użyć nawiasów klamrowych, jak poniżej,W twoim przypadku strona główna została wyeksportowana jako domyślna. To ten, który zostanie zaimportowany z modułu, jeśli nie określisz określonej nazwy określonego fragmentu kodu. Kiedy importujesz i pomijasz nawiasy klamrowe, będzie szukał domyślnego eksportu w module, z którego importujesz. Więc twój import powinien być,
Kilka odniesień do obejrzenia:
źródło
Właśnie natknąłem się na ten komunikat o błędzie (po aktualizacji do nextjs 9 niektóre transpiled import zaczęły powodować ten błąd). Udało mi się je naprawić używając składni takiej:
źródło
Możemy również użyć
używając słowa kluczowego export przed słowem kluczowym class.
Domyślnie
Domyślna klasa eksportu
W obu przypadkach nie trzeba pisać
po zajęciach.
źródło
Możesz użyć dwóch sposobów rozwiązania tego problemu, pierwszy sposób, który uważam za najlepszy, to zastąpienie importowanego segmentu kodu poniższym:
lub wyeksportuj swój komponent bez wartości domyślnej, który nazywa się tak nazwanym eksportem
źródło
Oto rozwiązanie:
źródło