Как получить текущую метку времени из редукторов 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
}