UseContext не работает в том же файле

Так что не уверен, что это именно проблема, но интересно, почему это происходит при использовании контекстов в одном и том же файле по сравнению с разными файлами.

Итак, вот константа:

StartupContext.js

import React from "react";

export const StartupContext = React.createContext()

export const StartupProvider = ({ something, children }) => {
    return (
        <StartupContext.Provider value = {{ something }}>
            {children}
        </StartupContext.Provider>
    )
}

Там нет проблем. Но когда я запускаю это:

App.js

function Root() {
  const { something } = useContext(StartupContext);

  return (
    <Text>Root {something}</Text>
  )
}

export default function App() {
  const [something, setSomething] = useState("ayyyy")

  return (
    <StartupProvider something = {something}>
      <Root />
    </StartupProvider>
  );
}

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

TypeError: undefined is not an object (evaluating 'Context._context')

НО

Если я разделю на два файла

App.js

import { Root } from "./Root";

export default function App() {
  const [something, setSomething] = useState("ayyyy")

  return (
    <StartupProvider something = {something}>
      <Root />
    </StartupProvider>
  );
}

Root.js

export default function Root() {
  const { something } = useContext(StartupContext);

  return (
    <Text>Root {something}</Text>
  )
}

Это будет работать просто отлично. Почему это происходит?

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

Ответы 1

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

О чувак. Это было что-то совершенно другое.

Я импортировал в один файл:

import StartupContext from "./app/contexts/startupContext";

что было неправильно, я должен был иметь это:

import { StartupContext } from "./app/contexts/startupContext";

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