1
내 redux 상태를 PouchDB 인스턴스에 동기화하려고하는데 문제가 있습니다.Redux 저장소와 PouchDB가 redux-pouchdb와 동기화되지 않습니다.
로그에서 보이는 것처럼 동작이 발생하면 PouchDB에 내 redux 상태가 동기화되지 않으며 업데이트시 PouchDB 문서가 redux 상태로 동기화되지 않습니다.
에 구현 된대로 redux-pouchdb
을 구현하려고했지만 어느 쪽도 오류가 발생하지 않으며 동기화 작업도 수행되지 않습니다.
감속기 (모듈/mainbase.js) :
import { persistentReducer } from 'redux-pouchdb';
export const INPUT_CHANGED = 'mainbase/INPUT_CHANGED'
const initialState = {}
function mainbase (state = initialState, action) {
switch (action.type) {
case INPUT_CHANGED:
state[action.key] = action.value;
return {...state}
default:
return state;
}
}
export default persistentReducer(mainbase);
export const inputChanged = (key, value) => {
return dispatch => {
dispatch({
type: INPUT_CHANGED,
key: key,
value: value
})
}
}
루트 감속기 (모듈 /하는 index.js) :
이
내가 함께 일하고 코드입니다import { combineReducers } from 'redux'
import { routerReducer } from 'react-router-redux'
import mainbase from './mainbase'
export default combineReducers({
router: routerReducer,
mainbase
})
스토어 (store.js) :
import { createStore, applyMiddleware, compose } from 'redux'
import { routerMiddleware } from 'react-router-redux'
import thunk from 'redux-thunk'
import createHistory from 'history/createBrowserHistory'
import rootReducer from './modules'
import { persistentStore } from 'redux-pouchdb'
import PouchDB from 'pouchdb'
export const history = createHistory()
const db = new PouchDB('testproject')
const initialState = {}
const enhancers = [
persistentStore(db)
]
const middleware = [
thunk,
routerMiddleware(history)
]
const composedEnhancers = compose(
applyMiddleware(...middleware),
...enhancers
)
const store = createStore(
rootReducer,
initialState,
composedEnhancers
)
export default store
어떤 도움을 주셔서 감사합니다.
저는 감속기가 반환하는 상태가 새로 복사 된 객체이기 때문에 스프레드 연산자를 사용하고 있습니다. 상태가 올바르게 업데이트되고 있으며, poach에 대한 동기화가 의도 한대로 작동하지 않습니다. – dboth
상태 [action.key] = action.value; return {... state} – Amitabh
상태 [action.key] = action.value; return {... state} 위의 내용이 다음과 같아야합니다. let newState = {... state, [action.key] : action.value}; return newState – Amitabh