Eu estava trabalhando create-react-app
e me deparei com esse problema de ondeHome does not contain an export named Home
.
Aqui está como eu configuro meu App.js
arquivo:
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;
Agora na minha layouts
pasta eu tenho o Home.js
arquivo. que é configurado como a seguir.
import React, { Component } from 'react';
class Home extends Component{
render(){
return(
<p className="App-intro">
Hello Man
</p>
)
}
}
export default Home;
Como você pode ver, estou exportando o Home
componente, mas recebo um erro no meu console dizendo isso.
O que está acontecendo?
Usar
ao invés de
Remover
{}
da página inicialfonte
Este é um caso em que você misturou exportações padrão e nomeou exportações .
Ao lidar com as
named
exportações, se você tentar importá-las, use chaves como abaixo,No seu caso, a Casa foi exportada como padrão. É o que será importado do módulo, quando você não especificar um determinado nome de um determinado pedaço de código. Quando você importa e omite os chavetas, ele procurará a exportação padrão no módulo do qual está importando. Portanto, sua importação deve ser,
Algumas referências a serem visualizadas:
fonte
Acabei de receber essa mensagem de erro (após a atualização para o nextjs 9, algumas importações transpiladas começaram a dar esse erro). Consegui corrigi-los usando uma sintaxe como esta:
fonte
Nós também podemos usar
usando exportar palavra-chave antes da palavra-chave da classe.
Por padrão
Classe de exportação padrão
Ambos os casos não precisam escrever
depois da aula.
fonte
Você pode usar duas maneiras de resolver esse problema, a primeira maneira que eu acho que é a melhor maneira de substituir o segmento de importação do seu código pelo seguinte:
ou exportar seu componente sem padrão, chamado exportação exportada, como este
fonte
Esta é a solução:
fonte