HomeBlogErrors / Fixesэкспорт ‘createStore’ не найден в ‘redux
Errors / FixesSeptember 5, 20263 min

экспорт ‘createStore’ не найден в ‘redux

export 'createStore' was not found in 'redux' ## Description of the Error and Causes If you encounter the error `export 'createStore' was not found in 'redux'`, it means that...

export 'createStore' was not found in 'redux'

Description of the Error and Causes

If you encounter the error export 'createStore' was not found in 'redux', it means that your code ca

ot find the required export from the Redux package. This error typically occurs due to incorrect setup or linking of the Redux package and its dependencies.

In this case, the author of the code is trying to import createStore from the redux package, but the JavaScript compiler reports an error stating that createStore is not found. This can be caused by several reasons:

  1. Incorrect linking of the Redux package.
  2. Issues with library versions.
  3. Incorrect project structure.

Code Analysis

App.js

import React from 'react';
import Layout from './components/Layout';
import { BrowserRouter } from 'react-router-dom';
import { Provider } from 'react-redux';
import { store } from './store';

const App = () => {
  return (
    <Provider store={store}>
      <BrowserRouter>
        <Layout />
      </BrowserRouter>
    </Provider>
  );
};

export default App;

store.js

import { createStore, applyMiddleware } from 'redux';
import createSagaMiddleware from 'redux-saga';
import reducers from './redux';
import sagas from './sagas';

const sagaMiddleware = createSagaMiddleware();

export const store = createStore(
  reducers,
  applyMiddleware(sagaMiddleware)
);

sagaMiddleware.run(sagas);

reducer.js

import { combineReducers } from 'redux';
import { reducer as auth } from './AuthRedux';

const reducers = combineReducers({ auth });

export default reducers;

sagas.js

import { takeLatest, all } from 'redux-saga/effects';
import api from '../middleware/api';
import { AuthTypes } from '../redux/AuthRedux';
import { signupSaga } from './AuthSaga';

export default function* root() {
  const sagaIndex = [
    yield takeLatest(AuthTypes.SIGNUP, signupSaga, api),
  ];
  yield all(sagaIndex);
}

Solution

Checking Library Versions

The first step should be to check the versions of the used libraries. Ensure that you are using compatible versions of redux and redux-saga. For example:

npm install redux@latest redux-saga@latest

Verifying Imports

Make sure that you correctly import all necessary functions from the redux package. In this case, createStore and applyMiddleware should be imported from redux.

Checking Project Structure

Ensure that your project structure is correct and all files are in their proper places. Incorrect structure can lead to module import issues.

Checking for Conflicts with Other Libraries

If you are using other libraries that also import createStore, there might be conflicts. Make sure there are no other exports with the same name.

Correcting the Code

Fix the import in the store.js file:

import { createStore, applyMiddleware } from 'redux';
import createSagaMiddleware from 'redux-saga';
import reducers from './redux';
import sagas from './sagas';

const sagaMiddleware = createSagaMiddleware();

export const store = createStore(
  reducers,
  applyMiddleware(sagaMiddleware)
);

sagaMiddleware.run(sagas);

Rebuilding the Project

After making these changes, rebuild your project and run it again. If the problem persists, try using debugging tools to troubleshoot.

Practical Tips

  1. Check Package Versions: Use commands like npm ls redux or yarn why redux to check versions and dependencies.
  2. Verify Imports: Ensure all imports are correct and do not contain errors.
  3. Check Project Structure: Make sure all files are in the right place and paths to imports are correct.
  4. Use Debugging Tools: Use browser developer tools for debugging errors.

Conclusion

If after all these steps the issue still persists, consider reaching out to developer communities or forums for additional help. Additionally, you can review the documentation for redux and redux-saga for further recommendations on setting up and using these libraries.