1
私のredux状態をPouchDBインスタンスに同期しようとしていますが、問題があります。ReduxストアとPouchDBがredux-pouchdbと同期していません
ログに記録されているように、アクションが発生した後に私の還元状態がPouchDBに同期されることも、更新時にPouchDB文書が還元状態に同期されることもありません。
redux-pouchdb
を実装しましたが、jrzerr/react-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