#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