У меня есть резервный магазин, который я обновляю из службы. Действие отправлено. Store.getState () возвращает обновленное состояние, но в mapStateToProps () отображается начальное состояние.
Попробовал прочитать документы, описывающие устранение неполадок, но не повезло. Я добавляю примеры кода, в которых я застрял.
Руководства по устранению неполадок в соответствующих и некоторые вопросы по SO.
https://react -redux.js.org / устранение неисправностей
https://redux.js.org/troubleshooting
Я использую Ignite2 (https://github.com/infinitered/ignite), который имеет шаблон как показано ниже
//index.js for reducers
//EDIT:
import { combineReducers } from 'redux'
import configureStore from './CreateStore'
import rootSaga from '../Sagas/'
/* ------------- Assemble The Reducers ------------- */
export const reducers = combineReducers({
search: require('./SearchRedux').reducer,
playerStateReducer: require('./PlayerStateReducer'),
})
export default () => {
let { store, sagasManager, sagaMiddleware } = configureStore(reducers, rootSaga)
return store
}
//service.js
//using react-native-track-player
TrackPlayer.addEventListener('playback-state', (data) => {
module.exports = async function(store, data) {
TrackPlayer.addEventListener('playback-state', (data) => {
store.dispatch({ type: 'UPDATE_PLAYER_STATE', currentState: data.state })
console.log(store.getState(), data, "store and data")
//gives me updated state from store
})
}
//PlayerStateReducer.js
export const reducer = (state = 0, action) => {
if (action.type == 'UPDATE_PLAYER_STATE') {
return action.currentState
} else {
return state
}
}
//PlayerUI.js
...
...
const mapStateToProps = (state) => {
console.log(state.playerStateReducer, "player state")
//This gives me the initial state i.e. 0
return {
playerState: state.playerStateReducer
}
}
export default connect(mapStateToProps)(PlayerUI)
Я новичок в разработке React Native. Любая помощь будет принята с благодарностью.
Большое спасибо.