Как получить текущую метку времени из редукторов Redux

Я пытаюсь записать время регистрации сотрудников в своем приложении (используя React-redux). Итак, мне нужно отслеживать текущую отметку времени всякий раз, когда сотрудник нажимает кнопку регистрации. Однако я не могу получить текущую отметку времени, если не обновляю веб-страницу каждый раз. Пробовал использовать setInterval в методе componentDidMount, но не повезло. Пожалуйста, направь меня.

Создатель действий:

export const recordTime = (time) => {
  return{
    type: 'RECORD_TIME',
    payload: time
  };
};

export const displayTime = () => {
  return (dispatch) => {
    const response = new Date().toLocaleTimeString();
    dispatch({type:'DISPLAY_TIME', payload:response});
  }
};

Редуктор:

const INITIAL_STATE = {
  checkInTime: new Date().toLocaleTimeString()
};

export default (state=INITIAL_STATE, action) => {
  switch (action.type) {
    case 'RECORD_TIME':
      return {...state, checkInTime: action.payload };

    case 'DISPLAY_TIME':
    return {...state, [action.payload.id]:action.payload};

    default:
    return state;

  }
};

Компонент регистрации:

componentDidMount() {
  console.log(this.props);
  this.interval = setInterval(
      () => this.props.dispatch({type:"RECORD_TIME"}),1000);

  this.props.fetchRecords(); ---> action creators
  this.props.fetchEmployees(); ---> action creators
}

componentWillUnmount () {
  clearInterval(this.interval);
}

файл db.json:

   Before using setInterval:

    {
      "empno": "1001",
      "checkInTime": "2:58:08 PM", ---> current Time stamp not updated
      "checkInDate": "8/18/2020",
      "id": 13
    },
    {
      "empno": "1002",
      "checkInTime": "2:58:08 PM", ---> current Time Stamp not updated
      "checkInDate": "8/18/2020",
      "id": 14
    },

After using setInterval:

    {
      "empno": "1005", ---> checkInTime is not recorded at all
      "checkInDate": "8/18/2020",
      "id": 17
    }

0 ответов

Другие вопросы по тегам