Ошибка: недопустимый тип элемента: ожидается строка или функция (для составных компонентов). Проверьте метод рендеринга SelectProfileContainer

У меня есть одна проблема в index.js, похоже, у меня ошибка с экспортом и импортом, я проверил свой код, но не могу найти ошибку. любая помощь, пожалуйста?

Я получаю эту ошибку:

Ошибка: недопустимый тип элемента: ожидалась строка (для встроенных компонентов) или класс/функция (для составных компонентов), но получено: не определено. Вероятно, вы забыли экспортировать свой компонент из файла, в котором он определен, или вы могли перепутать импорт по умолчанию и именованный импорт.

Проверьте метод рендеринга SelectProfileContainer

Мой код реакции (index.js):

import React from "react";
import { render } from "react-dom";
import "normalize.css";
import App from "./app";
import { GlobalStyles } from "./global-styles";
import { firebase } from "./lib/firebase.prod";
import { FirebaseContext } from "./context/firebase";
render(
  <>

    <FirebaseContext.Provider value = {{ firebase }}>

      <GlobalStyles />

      <App />

    </FirebaseContext.Provider>
  </>,
  document.getElementById("root")
);

вот код GlobalStyles.js:

import { createGlobalStyle } from "styled-components";

export const GlobalStyles = createGlobalStyle`
html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    background-color: black;
    color: #333333;
    font-size: 16px;
}

вот что выдает браузер:

Проверьте метод рендеринга SelectProfileContainer.

▶ 23 фрейма стека были свернуты.

Модуль.

C:/Users/CPU-MAJD/OneDrive/Desktop/Completely_fully_Netflix-clone/netflix/src/index.js:9

6 | импортировать {firebase} из "./lib/firebase.prod";

7 | импортировать {FirebaseContext} из "./context/firebase";

8 |

> 9 | оказывать(

10 | <>

11 | <FirebaseContext.Provider value = {{ firebase }}>

12 |

Итак, вы проверили метод рендеринга SelectProfileContainer?

Zsolt Meszaros 15.12.2020 18:02

Я не могу найти компонент SelectProfileContainer. я не создавал эту функцию

Majd Warrak 15.12.2020 18:11

вы можете проверить мой код здесь github.com/Gloryyy/Netflix-clone-from-scratch

Majd Warrak 15.12.2020 18:13
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
3
127
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

После проверки вашего репо я вижу компонент SelectProfileContainer:

export function SelectProfileContainer({ user, setProfile }) {
  return (
    <>
      <Header bg = {false}>
        <Header.Frame>
          <Header.Logo to = {ROUTES.HOME} src = {logo} alt = "Netflix" />
        </Header.Frame>
      </Header>

      <Profiles>
        <Profiles.Title>Who's watching?</Profiles.Title>
        <Profiles.List>
          <Profiles.User
            onClick = {() =>
              setProfile({
                displayName: user.displayName,
                photoURL: user.photoURL,
              })
            }
          >
            <Profiles.Picture src = {user.photoURL} />
            <Profiles.Name>{user.displayName}</Profiles.Name>
          </Profiles.User>
        </Profiles.List>
      </Profiles>
    </>
  );
}

Сообщение об ошибке, отображаемое на экране, не очень полезно, но если вы посмотрите на консоль, вы увидите следующее, более полезное:

Check your code at profiles.js:19.
    at SelectProfileContainer 

Строка 19 — это строка с <Profiles.User>, и если вы попытаетесь проверить компонент, вы заметите, что его нет в src/components/profiles/index.js. Убедитесь, что есть компонент <Profiles.User> и ошибка исчезла.

Zsolt Meszaros, наконец, все работает нормально, спасибо, братан, на самом деле я забыл переименовать <Profiles.User> в <Profiles.Item>, это была ошибка. спасибо

Majd Warrak 15.12.2020 22:04

Другие вопросы по теме