если вам нужно решение с избыточностью, вы можете изменить свойство начального состояния для объекта и добавить свойство срока действия следующим образом.
const initialState = {
someProperty: {
value: '',
expirationDate: ''
}
}
, и при отправке действия вы можете передать объект как со значением свойства, так и с эксп. дата как
dispatch({
type: 'ADD_FOO',
payload: {
value: 'bar',
expirationDate: 1000 //ms (1sec)
}
})
и в вашем редукторе вы можете просто
if(action.type === 'ADD_FOO'){
return ...state, someProperty: action.payload
}
и, наконец, когда вам нужно проверить срок действия, вам нужно проверять каждый раз, когда вы будете получать эти данные из хранилища, если срок действия истекdate больше чем date.now, например, так: new Date(someProperty.expirationDate).getTime() < Date.now()
, и отправьте новое действие, которое удаляет это свойство, или вы можете добавить третье свойство в someProperty (в initialState) с именем expired: false
, и действие отправки для изменения истекло с false на true. этот подход трудно поддерживать, и вы, вероятно, получите ошибку, поэтому я бы выбрал подход с использованием файлов cookie.