Andrew
Andrew

Reputation: 3989

Receiving "Attempted import error:" in react app

I am receiving the following error when trying to run my React app:

./src/components/App/App.js
Attempted import error: 'combineReducers'
is not exported from '../../store/reducers/'.

Here's how I'm exporting combineReducers:

import { combineReducers } from 'redux';
import userReducers from './userReducers';
import articleReducers from './articleReducers';

export default combineReducers({
    userReducers,
    articleReducers
});

and here's how I'm importing it in App.js:

import { combineReducers } from '../../store/reducers';

What's incorrect in how I'm exporting combineReducers?

Upvotes: 199

Views: 298842

Answers (9)

Colin Ricardo
Colin Ricardo

Reputation: 17249

import { combineReducers } from '../../store/reducers';

should be

import combineReducers from '../../store/reducers';

since it's a default export, and not a named export.

There's a good breakdown of the differences between the two here.

Upvotes: 416

Micheal N.D
Micheal N.D

Reputation: 460

I guess I am coming late, but this info might be useful to anyone I found out something, which might be simple but important. if you use export on a function directly i.e

export const addPost = (id) =>{
  ...
}

Note while importing you need to wrap it in curly braces i.e. import {addPost} from '../URL';

But when using export default i.e

const addPost = (id) =>{
  ...
}

export default addPost

Then you can import without curly braces i.e. import addPost from '../url';

I hope this helps anyone who got confused as me. 🙂

Upvotes: 14

Jackalakalaka
Jackalakalaka

Reputation: 131

Consider checking for any file renamings that git hasn't been instructed to track with git mv

Upvotes: 0

Sterling Diaz
Sterling Diaz

Reputation: 3875

Take into consideration that if you are using a named export you don't need curly brackets:

export const Component 

->

 import {ComponentName}

Only the default exported component be imported with curly brackets:

export default 

->

import ComponentName

Upvotes: 2

Be sure to Capitalize the name of the constant variable you're exporting inside the component. When you Import the component elsewhere you should also check that its first letter is capitalized since this is one of the ways React uses to identify its components.

inside component:

import React from 'react';

export const Component =  (props) => (...)

And then, when importing:

import {Component} from '../location/file'

Upvotes: 0

Shashii
Shashii

Reputation: 1

If changing the import doesn't help maybe you just need to run yarn install or npm install (or whatever you're using) and restart your server. Worked for me.

Upvotes: 0

Maybe i'm late too but i had a similar problem with folders inside of component folder. i changed the folder's name with Capital letter. it worked for me.

Upvotes: 0

This is another option:

export default function Counter() {

}

Upvotes: 2

jmisael56yahoocom
jmisael56yahoocom

Reputation: 191

i had the same issue, but I just typed export on top and erased the default one on the bottom. Scroll down and check the comments.

import React, { Component } from "react";

export class Counter extends Component { // type this  
export default Counter; // this is eliminated  

Upvotes: 19

Related Questions