ReactRedex - 여러 스토어 인핸서를 생성에 전달하는 중 오류 발생()
리액션 앱이 있는데, 모두 잘 작동하고 있어.페이지 재로딩 시 저장 상태를 유지하여 데이터가 손실되지 않도록 해야 하므로 로컬 저장소에 데이터를 저장한 후 createStore(https://stackoverflow.com/a/45857898/801861))에 추가할 수 있도록 데이터를 반환하는 기능을 생성했다.데이터 저장소는 잘 작동하고 있으며, 데이터 저장소를 설정할 준비가 된 객체를 반환한다.createStore reaction에서 데이터 객체를 추가할 때 이 오류로 컴파일하지 못한 경우:
오류: 스토어()를 생성하기 위해 여러 개의 스토어 인핸서를 전달하고 있는 것으로 보인다.이것은 지원되지 않는다.대신 단일 함수로 구성
다음은 현재 코드 반환 오류:
const store = createStore(reducers, LoadState, applyMiddleware(thunk) );
//Error: It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function
실행 중인 내 원래 코드:
const store = createStore(reducers, applyMiddleware(thunk) );
온라인에서 찾은 유사한 문제들, 컴파일에 따라 이 문제를 해결하려고 했지만 원래 잘 작동하던 사이트 코드를 해독했다.
const composeEnhancers = LoadState || compose;
const store = createStore(reducers, composeEnhancers( applyMiddleware(thunk) ) );
//Error: Actions must be plain objects. Use custom middleware for async actions.
이걸 작동시키려면 뭘 바꿔야 할지 모르겠어. 어떤 도움이라도 고마워.
나는 당신이 이전 버전의 환원기에서 작업을 수행하는 자습서를 따르고 있다고 생각한다.
그림과 같이 Redex Dev Tools 확장에 사용할 CompositeEnhancer를 생성하십시오.
const composeEnhancer = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
그림과 같이 'remensx'에서 합성물을 가져온 후 -
import {createStore, compose, applyMiddleware} from 'redux';
표시된 대로 스토어를 만들 수 있다.
const Store = createStore(rootReducer, composeEnhancer(applyMiddleware(thunk)))
그 오류는 자명하다.정확히 무엇을 해야 하는지 알려준다!!
즉, 그것은 당신이 해야 한다는 것을 말해준다.compose
대신 당신의 증조원들이요다음 절차를 참조하십시오.
1단계: Redex 라이브러리에서 'compose' 가져오기
import { createStore, applyMiddleware, compose } from 'redux';
#2단계: 두 개 이상의 증류제가 있으므로 증류제 목록을 작성하십시오.
const enhancers = [LoadState, applyMiddleware(thunk)];
const store = createStore(
reducers,
compose(...enhancers)
);
자세한 내용은 이 페이지를 참조하십시오.
나는 너의 문제가 너의 LoadState 내에 있다고 의심한다.도대체 무슨 일이야?다음은 작업 중인 createStore:
const store = createStore(
reducers,
{ counter: { count: 5 } },
applyMiddleware(() => dispatch => {
console.log('Yoyoyo')
return dispatch;
}));
네 문제가 해결되길 바라.LoadState가 어떤 기능이나 LoadState가 어떤 것이든 아닌 실제 초기 상태 값을 입력하도록 하십시오 :)
패키지를 사용하여 Redex 스토어를 로컬 저장소에 보관할 수 있으며 자신의 기능을 만들 필요가 없음: https://github.com/rt2zz/redux-persist
패키지의 첫 번째 예에서는 resistanceRedcer() 및 restoreStore()를 사용하여 상태를 저장한 다음 새로 고침 페이지에서 자동으로 다시 수수를 처리하는 방법을 볼 수 있다.
여기에 링크 설명을 입력하는 데 도움이 될 수 있는 이 고급 저장소 설정을 확인하십시오.
https://github.com/zalmoxisus/redux-devtools-extension#12-advanced-store-setup
import { createStore, applyMiddleware, compose } from 'redux';
+ const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
+ const store = createStore(reducer, /* preloadedState, */ composeEnhancers(
- const store = createStore(reducer, /* preloadedState, */ compose(
applyMiddleware(...middleware)
));
리액션 리플렉스로 시작해서 같은 이슈에 직면했다.그것이 올바른 접근법인지 확실하지 않지만, 우리는 간다.코드에서 고쳐야 할 한 가지 문제는 함수를 호출하는 겁니다
store = createStore(reducers, LoadState(), applyMiddleware(thunk) );
이 해결책은 나에게 효과가 있었다.
Redex saga 사용자의 경우,
import createSagaMiddleware from "redux-saga";
const sagaMiddleware = createSagaMiddleware();
const composeEnhancer = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(rootReducer, composeEnhancer(applyMiddleware(sagaMiddleware)))
'Programing' 카테고리의 다른 글
Vue JS는 다른 계산 속성의 각 키 값에 대해 계산된 속성 실행 (0) | 2022.03.09 |
---|---|
$209가 아동 이벤트를 유발하지 않음 (0) | 2022.03.09 |
다른 포트에서 실행 중인 Vue 애플리케이션에서 노드 익스프레스 서버 API 호출 (0) | 2022.03.09 |
기본 반응: 가져오기 요청이 오류와 함께 실패함 - TypeError: (0) | 2022.03.09 |
Vue.js 하위 구성 요소에서 모달 닫기 (0) | 2022.03.09 |