Tengo un proyecto de administrador de reacción usando React Redux.
A continuación se muestra el detalle:
slice.tsx: import {createSlice} from "@reduxjs/toolkit"; const newRevisionSlice = createSlice({ name: 'newRevision', initialState: { dataList: [], status: 'idle' }, reducers: { postSaveNewRevision: (state = { dataList:[], status:"idle" }, action) => { return { ...state, dataList: action.payload, status: 'success' }; } } }); export const { postSaveNewRevision } = newRevisionSlice.actions; export default newRevisionSlice.reducer; component.tsx: const newRevision = useSelector((state: RootState) => state.newRevision) store.tsx: declare global { interface Window { __REDUX_DEVTOOLS_EXTENSION_COMPOSE__?: typeof compose; } } const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; const rootReducer = combineReducers({ fleetType: fleetTypeApi, revisionNo: revisionNoApi, revisionDate:revisionDateApi, newRevision: newRevisionApi, }); const store = createStore(rootReducer, composeEnhancers(applyMiddleware(thunk))); const useAppDispatch = () => store.dispatch; export type RootState = ReturnType<typeof store.getState>; export { useAppDispatch }; ReactDOM.render( <Provider store={store}> <React.StrictMode> <App /> </React.StrictMode> </Provider>, document.getElementById('root') );En reaccionar redux devtool veo que el estado se actualiza correctamente cuando envío. Sin embargo, useSelector para que newRevision en el componente devuelva undefined.
¿Me podría ayudar?
Gracias por adelantado.
¿Hay alguna posibilidad de que su newRevisionSlice y el newRevisionApi en store.jsx sean 2 reductores diferentes? Si ese es el caso, entonces tiene 2 tiendas separadas para newRevision y no compartirán estados.
Problemas similares que se resuelven:
Además, debido a que su useSelector() devuelve undefined , también podría ser el caso de que haya un error tipográfico en algún lugar con los nombres de las rebanadas/reductores.