1
resposta

Error Element type is invalid: expected a string...

Recebi o seguinte erro quando criei o index.js pra somente exportar o header:

Error: Element type is invalid: expected a string( for built-in components) or a class/function (for composite components) but got: object. You likely forgot to export your component from the file it's defined in.

meu header ta assim:

import React, { Fragment } from 'react';
import { Text, View, Image } from "react-native";
import styles from "./styles.js"

const MyHeader = ({ nameUser }) => {
    return (
        <View style={styles.header}>
            <Image
                source={require("../../res/img/user.png")}
                style={styles.imageUser}
            />
            <Text>{nameUser}</Text>
        </View>
    );
}

export default MyHeader;

meu index.js:

export { default as Header } from './Header';

Tentei importar assim no App.js e gerou o erro que eu mencionei no inicio

import {MyHeader} from './src/components/Header';

Só dá certo quando tento importar assim:

import MyHeader from './src/components/Header/Header';

Mas acho que não seria o ideal

1 resposta

Olá Ane, tudo bem com você?

Então acontece que você cometeu um pequeno equivoco na hora de importar o arquivo :)

export { default as Header } from './Header';

O que estamos fazendo aqui é dizer que iremos exportar o conteúdo como ( as ) Header

Então precisamos fazer o import em app.js da seguinte maneira:

import { Header } from './src/components/Header';

O nome que vem após os as é o que define como iremos importar em outro arquivo, então se fosse export { default as ParteInicial } iriamos precisar fazer import { ParteInicial } from '...

Compreendeu? Qualquer coisa estou a disposição :)

Abraços e Bons Estudos!