Как импортировать мои редукторы в reducers.spec.js ?

#javascript #react-redux

#javascript #реагировать-redux

Вопрос:

Когда я запускаю приложение — все в порядке. Но когда я запускаю тесты — он завершается с ошибкой

Ошибка синтаксиса: неожиданный идентификатор ({«Object.»: функция (модуль, экспорт, требование, __dirname,__filename, глобальный, шутка){импорт действий из ‘../ LoginPage / actions’

Мой reducers.spec.js файл:

 import reducer from '../LoginPage/reducers';

const state = { user: [], isLoading: false };

describe('Login reducer', () => {
    it('should return initial state', () => {
        expect(reducer(undefined, {})).toEqual([
            {
                ...state,
                isLoading: false
            }]);
    });
    })
})
  

Мой reducers.js файл:

 const requestSignIn = 'REQUEST_SIGN_IN';
const receiveSignIn = 'RECEIVE_SIGN_IN';

const initialState = { user: [], isLoading: false};

export const reducer = (state, action) => {
    state = state || initialState;

    if (action.type === requestSignIn) {
        return {
            ...state,
            isLoading: true
        };
    }

    if (action.type === receiveSignIn) {
        return {
            ...state,
            user: action.user,
            isLoading: false
        };
    }

    return state;
};
  

Не имеет значения, что я пытаюсь импортировать. Я думаю, что именно импорт не работает.

Комментарии:

1. можете ли вы добавить reducers.js ответьте на ваш вопрос, чтобы мы могли увидеть, в чем проблема?

2. измените export const reducer на export default function reducer

Ответ №1:

У вас есть два варианта решения этой проблемы :

  • вам нужно изменить export const reducer на export default (state, action) => в reducers.js .

или

  • в reducers.spec.js изменить import reducer from '../LoginPage/reducers'; на import { reducer} from '../LoginPage/reducers';

для получения дополнительной информации вы можете прочитать больше об импорте и экспорте на веб-сайте MDN.

Комментарии:

1. Я уже пробовал. Это не работает. В первом случае: ‘ импортировать редуктор из ‘../ LoginPage / reducers’; ^^^^^^^ Ошибка синтаксиса: неожиданный идентификатор в ScriptTransformer._transformAndBuildScript (node_modules/ jest-runtime/build/script_transformer.js:403:17)’ Во втором случае: ‘импортировать { reducer } из ‘../ LoginPage / reducers’; ^ Ошибка синтаксиса: неожиданный токен { в ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:403:17)’

2. у вас есть какой-либо файл .babelrc?

3. Нет, у меня нет никакого файла .babelrc