Дело не в стейт менеджере. Дело в том, что модель не соотвествует коду... очень сложно...
Ну хуки, так хуки... но тогда useReducer бы больше подошел... но опять же, дело не в этом.
В моем "идеальном мире" эта задача бы реализовывалась так:
1. У нас есть абсолютные даты у объектов. Ок.
2. Нам надо показывать относительное время, т.е. интервал между "сейчас" и датой в объекте. Значит у нас есть "сейчас", текущее время.
3. Интервал - вычисляемое значение, зависит от текущего времени и даты в объекте
4. Удобно сделать компонент <Item object={object} now={currentTime} /> - если очень хочется, можно currentTime в хук убрать...
5. Отдельно в основном объекте фетч и стейт со списком объектов, текущей страницей, состоянием загрузки и т.п., и да, он берет и проходит по списку и рендерит <Item ... />
6. Если текущее время не в хук убрано, то в основном объекте на didMount (ой, простите в useEffect) ставится таймер, который с снужным интервалом апдейтит стейт с currentTime...
Как-то так...
Благодарен за уделенное внимание, попробую так.
Есть один жесткий P.S. по дате: мне приходит строка, допустим 18.08.2020 10:00:00, я пытаюсь её скормить new Date('18.08.2020 10:00:00'), естественно получаю болт, приходится делать следущее: new Date(date.split(' ')[0].split('.')[2], date.split(' ')[0].split('.')[1]-1, date.split(' ')[0].split('.')[0], date.split(' ')[1].split(':')[0], date.split(' ')[1].split(':')[1], date.split(' ')[1].split(':')[2]) 🤦♂️, есть ли более рациональное решение?