Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

215
Vistas
Error Type: undefined is not an object (evaluating '_useSelector.attendance')

I'm having a challenge with redux as I keep getting this error: TypeError: undefined is not an object (evaluating '_useSelector.attendance'). Everything seems to be working fine but I just done understand why it keeps coming back to this even when it seems the code is okay to my knowledge

Reducers.js

import { GET_ATTENDANCE, ADD_TO_ATTENDANCE_LIST } from "./actions";


const initialState = () => ({
  attendance: [],
  attendancebook: [],
});

function attendanceReducer(state = initialState, action) {
  switch (action.type) {
    case GET_ATTENDANCE:
      return { ...state, attendance: action.payload };
    case ADD_TO_ATTENDANCE_LIST:
      return {
        ...state,
        attendancebook: [...state.attendancebook, action.payload],
      };
    default:
      return state;
  }
}

export default attendanceReducer;

AttendanceScreen.js

function AttendanceScreen({ route }) {
  const navigation = useNavigation();
  const listing = route.params;
  const dispatch = useDispatch();

  const { attendance, attendancebook } = useSelector(
    (state) => state.attendanceReducer
  );

  const getAttendance = () => {
    try {
      dispatch({
        type: GET_ATTENDANCE,
        payload: attendancelist,
      });
    } catch (error) {
      console.log(error);
    }
  };

  const fetchAttendance = () => dispatch(getAttendance());

  const addToAttendanceList = (data) => dispatch(addAttendance(data));

  useEffect(() => {
    fetchAttendance();
  }, []);

store.js

import attendanceReducer from "./reducers";

const persistConfig = {
  key: "root",
  storage: AsyncStorage,
  whitelist: ["attendancebook"],
};

const rootReducer = combineReducers({
  attendanceReducer: persistReducer(persistConfig, attendanceReducer),
});

export const store = createStore(rootReducer, applyMiddleware(thunk));
export const persistor = persistStore(store);

actions.js

export const GET_ATTENDANCE = "GET_ATTENDANCE";
export const ADD_TO_ATTENDANCE_LIST = "ADD_TO_ATTENDANCE_LIST";

export const addAttendance = (data) => (dispatch) => {
  dispatch({
    type: ADD_TO_ATTENDANCE_LIST,
    payload: data,
  });
};

Please any help will be appreciated.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda