В магазине нет действующего редуктора при использовании redux-toolkit

У меня проблемы с функцией configureStore redux-toolkit, всякий раз, когда я пытаюсь вызвать диспетчеризацию на странице, она выдает мне ошибку «Магазин не имеет допустимого редуктора». Я полагаю, что мой импорт правильный, а также хранилище находится на верхнем уровне моего файла index.js.

Вот как это выглядит:

Файл store.js:

import { configureStore } from "@reduxjs/toolkit";
import bookReducer from "../reducers/book";

export default configureStore({
  reducer: { books: bookReducer }
});

book.js файл:

import { createSlice } from '@reduxjs/toolkit'

export const bookSlice = createSlice({
  name: 'books',
  initialState: {
    bookList: []
  },
  reducers: {
    getBookSuccess: (state, action) => console.log(action.payload),
    getBookFailure: (state, action) => console.log(action.payload),
    setLoading: (state, action) => ({ ...state, loadingTarget: action.loadingTarget, loadingType: action.loadingType })
  }
})

export const { getBookSuccess, getBookFailure, setLoading } = bookSlice.actions;

export default bookSlice.reducer;

index.js файл:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.scss';
import App from './App';
import store from './app/store';
import { Provider } from 'react-redux';
import './fontAwesome'

ReactDOM.render(
  <React.StrictMode>
    <Provider store={store}>
      <App />
    </Provider>
  </React.StrictMode>,
  document.getElementById('root')
);

Заранее спасибо!


person Rodolfo    schedule 18.06.2020    source источник
comment
Это выглядит действительным. Можете ли вы записать, что booksReducer находится в вашем store.js файле? Это на самом деле функция?   -  person markerikson    schedule 18.06.2020
comment
О, ваш комментарий заставил увидеть, что даже не работало ведение журнала, импорт был из другого магазина, который был в другой папке. Виноват! Спасибо, в любом случае!!   -  person Rodolfo    schedule 19.06.2020


Ответы (2)


Собственно это была моя ошибка, магазинов было два (один из шаблона). Я импортировал оригинал вместо созданного.

person Rodolfo    schedule 18.06.2020

Я думаю, если вы измените configureStore на это:

export default configureStore({
  reducer: bookReducer
});

Он должен работать.

person Igor Bykov    schedule 18.06.2020
comment
К сожалению, в документации это не работает, если я передаю объект редукторов, он вызывает функцию редукторов объединения. Значит, это должно было работать ... - person Rodolfo; 18.06.2020
comment
@Rodolfo извините за то, что не помог решить вашу проблему, и спасибо, что указали на функцию redux-toolkit, о которой я не знал. - person Igor Bykov; 19.06.2020