У меня есть структура папок моего проекта: -
В GlobalStore.js у меня есть код ->
import React from 'react'
const GlobalContext=React.createContext();
const GlobalProvider=GlobalContext.Provider;
const GlobalConsumer=GlobalContext.Consumer;
export default {GlobalProvider,GlobalConsumer}
В App.js у меня есть код ниже -
import logo from './logo.svg';
import './App.css';
import Login from './Components/Login';
import { store } from "./GlobalStorage/store";
import {GlobalProvider,GlobalConsumer} from "./GlobalStore";
function App() {
return (
<div className = "App">
<GlobalProvider value = {store}>
<Login></Login>
</GlobalProvider>
</div>
);
}
export default App;
Хотя я экспортировал GlobalProvider из GlobalStore.js, приложение выдает следующую ошибку:
Failed to compile.
./src/App.js
Attempted import error: 'GlobalProvider' is not exported from './GlobalStore'.
Хотя import { } выглядит как деструктуризация, это не то же самое, что деструктуризация объекта. Синтаксис связан с именованным экспортом. Вы перепутали экспорт по умолчанию с именованным экспортом. Если вы экспортируете что-то только с помощью export (не export default), вы можете импортировать это по имени с помощью import { } from .... Однако, если вы используете export default, вы просто даете импорту имя (например, import Store from './GlobalStore') и деструктурируете его позже (const { GlobalProvider } = Store)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы экспортируете объект со свойствами GlobalProvider и GlobalConsumer как экспорт default из GlobalStore.js. Удалите ключевое слово default, и он будет работать, как и ожидалось, с обычным именованным экспортом.
export { GlobalProvider, GlobalConsumer };
я думаю
defaultне требуется в globalstoreexport default {GlobalProvider,GlobalConsumer}