Получение предупреждения ‘import / no-anonymous-default-export’ для именованных функций в React

#javascript #reactjs #redux #react-redux #eslint

#javascript #reactjs #redux #react-redux #eslint

Вопрос:

Я работаю с приложением React / Redux, которое по какой-то причине получает предупреждение ‘import / no-anonymous-default-export’ для редукторов приложений, даже если функции редуктора названы.

 userRedirect.js

import {SET_USER_REDIRECT} from "../actions/actionTypes";

const initialState = {
    active: false,
    title: '',
    messages: [],
    btnText: ''
};

const userRedirect = (state = initialState, action) => {
    switch (action.type) {
        case SET_USER_REDIRECT:
            let newState = {...state};
            newState = {...newState, ...action.payload.redirectData};
            return newState;

        default:
            return state;
    }
};

export default userRedirect;


 

Этот редуктор импортируется в index.js который находится в папке reducers, где userRedirect.js также находится. Затем он использует метод combineReducers из redux для обработки редукторов.

 import {combineReducers} from 'redux';
import userData from './userData';
import userRedirect from './userRedirect';

export default combineReducers({
    userData,
    userRedirect
});
 

Затем это импортируется в индекс папки хранилища, где это происходит:

 import {createStore, applyMiddleware} from "redux";

import thunk from 'redux-thunk';
import { composeWithDevTools } from 'redux-devtools-extension';

import rootReducer from "./../reducers";

export default createStore(rootReducer, composeWithDevTools(applyMiddleware(thunk)));
 

Мне кажется, что есть ошибка с плагином или что-то в этом роде, но я пробовал установку npm, я пытался создать userRedirect reducer, используя объявление функции, а не выражение, но независимо от того, что я делаю, он продолжает показывать предупреждение, и я не могу понять, почему.

У вас, ребята, есть какие-нибудь идеи или предложения по этому поводу? Я просто что-то упускаю?

Очень ценю это!

Ответ №1:

[ экспорт по умолчанию combineReducers({userData, userRedirect });

экспорт хранилища файлов по умолчанию (rootReducer, composeWithDevTools(applyMiddleware(thunk)));

Эти два являются анонимным экспортом.

Измените его на

const rootReducer = combineReducers({userData, userRedirect });

экспортируйте rootReducer по умолчанию;

const store = createStore(rootReducer, composeWithDevTools (applyMiddleware (thunk)));

экспорт хранилища по умолчанию;

Простите меня, если выглядит не очень хорошо … отвечаю с мобильного. Не удается отформатировать с мобильного