Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

225
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda