"Ошибка: ошибка: ошибка: ошибка: вы не можете вызвать store.getState(), пока выполняется редуктор". ? - программирование
Подтвердить что ты не робот

"Ошибка: ошибка: ошибка: ошибка: вы не можете вызвать store.getState(), пока выполняется редуктор". ?

Я просто обновил свое полностью функциональное приложение для реагирования на сокращение до версии v4, но теперь я получаю следующую ошибку:

Ошибка: Ошибка: Ошибка: Ошибка: вы не можете вызвать store.getState(), пока выполняется редуктор. Редуктор уже получил состояние в качестве аргумента. Передайте его вниз от верхнего редуктора вместо того, чтобы читать его из магазина.

Я подозреваю, что проблема заключается в том, что у меня есть множество компонентов внутри других, каждый со своим собственным connect(mapStateToProps, mapDispatchToProps)(Component) и я полагаю, что это не правильный способ его реализации, хотя я не уверен, что это правильный способ Это.

Любое направление очень ценится!

Трассировки стека:

    This error is located at:
    in Connect(SideBarApp) (at SceneView.js:9)
    in SceneView (at createTabNavigator.js:10)
    in RCTView (at View.js:43)
    in RCTView (at View.js:43)
    in ResourceSavingScene (at createBottomTabNavigator.js:86)
    in RCTView (at View.js:43)
    in RCTView (at View.js:43)
    in TabNavigationView (at createTabNavigator.js:127)
    in NavigationView (at createNavigator.js:59)
    in Navigator (at createNavigationContainer.js:376)
    in NavigationContainer (at SceneView.js:9)
    in SceneView (at SwitchView.js:12)
    in SwitchView (at createNavigator.js:59)
    in Navigator (at createNavigationContainer.js:376)
    in NavigationContainer (at AppNavigator.js:36)
    in App (created by Connect(App))
    in Connect(App) (at index.ios.js:23)
    in Provider (at index.ios.js:22)
    in TheNewsApp (at renderApplication.js:32)
    in RCTView (at View.js:43)
    in RCTView (at View.js:43)
    in AppContainer (at renderApplication.js:31)

This error is located at:
    in NavigationContainer (at SceneView.js:9)
    in SceneView (at SwitchView.js:12)
    in SwitchView (at createNavigator.js:59)
    in Navigator (at createNavigationContainer.js:376)
    in NavigationContainer (at AppNavigator.js:36)
    in App (created by Connect(App))
    in Connect(App) (at index.ios.js:23)
    in Provider (at index.ios.js:22)
    in TheNewsApp (at renderApplication.js:32)
    in RCTView (at View.js:43)
    in RCTView (at View.js:43)
    in AppContainer (at renderApplication.js:31)

This error is located at:
    in NavigationContainer (at AppNavigator.js:36)
    in App (created by Connect(App))
    in Connect(App) (at index.ios.js:23)
    in Provider (at index.ios.js:22)
    in TheNewsApp (at renderApplication.js:32)
    in RCTView (at View.js:43)
    in RCTView (at View.js:43)
    in AppContainer (at renderApplication.js:31)
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:79579:24
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:78896:56
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:79019:28
Connect(SideBarApp)@http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:78969:29
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:20826:32
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:22393:35
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:24922:27
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:24955:47
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:24988:21
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:25549:23
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:25481:30
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:25456:20
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:25362:26
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:25224:28
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:20681:23
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2380:37
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:80901:27
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:80517:24
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:80470:44
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:79810:38
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:79628:38
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:112247:19
http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:112199:44
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:8818:16
http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:8919:27
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:8162:17
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:8198:19
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:8417:33
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:7741:32
http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:7580:34
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:7721:15
[email protected]://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:7579:21
[email protected][native code]
[email protected][native code]
4b9b3361

Ответ 1

Это проблема с новой версией версии 2.16 редукции-devtools-extension.

Здесь пара обходных путей, пока мы ждем исправления...

  1. Вернуться к рабочей версии v2.15.5 (для Chrome)

  2. Или просто отключите ваше расширение redux-devtool сейчас.

    • либо на уровне браузера, либо с помощью вашего кода (где вы создаете редукционный магазин)

К вашему сведению: это не решает вопрос OP, но решает проблему, при которой разработчики получают сообщение об ошибке ниже, начиная с 27.11.18.

Error: You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.


ОБНОВИТЬ

v2.16.2 был выпущен

Для тех, кто ранее отключил расширение, просто включите его и обновите ваши инструменты redux dev с 2.16.0 до 2.16.2 Обновите инструменты Redux Dev

Ответ 2

В моем случае я должен удалить composeWithDevTools - плагин для Chrome

import { createStore, combineReducers, applyMiddleware } from 'redux';
import { composeWithDevTools } from 'redux-devtools-extension';
import thunk from 'redux-thunk';

// const enhancer = composeWithDevTools(applyMiddleware(thunk))
const enhancer = applyMiddleware(thunk)

const store = createStore(reducers, enhancer);

Ответ 3

В моем проекте. Этот вопрос просто всплыл из ниоткуда в один прекрасный день.

Мое решение: отключить расширение Chrome - Redux Devtools. Тогда все возвращается на круги своя.

Так что с такого рода ошибками, вы должны проверить в нескольких браузерах, чтобы найти проблему.

Ответ 4

Отключение расширения Chrome или удаление composeWithDevTool из вашего кода будет быстрым решением. Но мы все знаем, что нам нужно расширение, чтобы отслеживать состояние нашего приложения и правильно управлять им. Итак, я создал проблему сегодня, пожалуйста, поддержите, надеюсь, кто-то из команды редуксов свяжется с нами.

Или, если вы ищете временное решение (для chrome), вы можете скачать https://github.com/zalmoxisus/redux-devtools-extension/releases/download/2.15.5/extension.zip, а затем распаковать его в какой-нибудь папка.

Введите chrome://extensions и включите режим разработчика в верхнем левом углу, а затем нажмите "Загрузить распакованный" и выберите извлеченную папку для использования.

Проблема: https://github.com/reduxjs/redux-devtools/issues/413

Ответ 5

Решение, которое работает для меня

Отключите расширение Chrome для инструментов Redux Dev. или удалите регистратор из вашего кода.

Обновление: обновите ваши инструменты redux dev с 2.16.0 до 2.16.1 Обновите инструменты Redux Dev.

Ответ 6

У меня была такая же ошибка при сборке PWA с полимером 3. В store.js также пытались использовать инструменты dev-dev, которые мне пришлось отключить:

...
// Sets up a Chrome extension for time travel debugging.
// See https://github.com/zalmoxisus/redux-devtools-extension for more information.
//const devCompose = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const devCompose =  compose;

// Initializes the Redux store with a lazyReducerEnhancer (so that you can
// lazily add reducers after the store has been created) and redux-thunk (so
// that you can dispatch async actions). See the "Redux and state management"
// section of the wiki for more details:
// https://github.com/Polymer/pwa-starter-kit/wiki/4.-Redux-and-state-management
export const store = createStore(
  state => state,
  devCompose(
    lazyReducerEnhancer(combineReducers),
    applyMiddleware(thunk))
);
...

Ответ 7

Вот что я сделал: просто прокомментировал строку для расширения Chrome Redux Devtools из моего файла store.js.

....

 const store = createStore(
  rootReducer,
  initialState,
  compose(
    applyMiddleware(...middleware)
   ///This line--> window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() 
  )
);

....

И проблема только началась час назад. Как мы все знаем, расширение очень удобно во время разработки, поэтому давайте подождем с реальными исправлениями от властей.

Ответ 9

У меня тоже была такая же ошибка при использовании reducex-thunk, response-native-router-flux, и я мог бы решить эту проблему, добавив тайм-аут в редуктор.

setTimeout(()=>{
                Actions.main();
                return state;
            },1)

Ответ 10

В моем случае проблема не была связана с расширением dev. Я столкнулся с этой ошибкой при работе с глубокими ссылками - обновлял запрос маршрута внутри редуктора. Логика переноса, связанная с манипулированием URL внутри settimeout, исправила ошибку.