Size: a a a

React Native — русскоговорящее сообщество

2020 August 21

СС

Сергей Сергеевич... in React Native — русскоговорящее сообщество
Gena Black
Я вот всё не могу понять, чем синтаксис const myFunc = () => { ... } так привлекает всех...
Чем function myFunc() { ... } хуже? По мне он гораздо читабельней
Ну он как-то моднее выглядет 😂
источник

GB

Gena Black in React Native — русскоговорящее сообщество
Сергей Сергеевич
Ну он как-то моднее выглядет 😂
Хех... и хуже читается...
источник

СС

Сергей Сергеевич... in React Native — русскоговорящее сообщество
Gena Black
Хех... и хуже читается...
На самом деле, везде по документу юзал классику function funcname() {}, а то, что прислал где-то на стэковерфлоу подмотал просто..
источник

GB

Gena Black in React Native — русскоговорящее сообщество
Сергей Сергеевич
Если подскажите, возможно я сразу лучше пойду иным путём. Когда про жесть говорили это про useState, лучше юзать другой стейт-менеджер?
Дело не в стейт менеджере. Дело в том, что модель не соотвествует коду... очень сложно...

Ну хуки, так хуки... но тогда useReducer бы больше подошел... но опять же, дело не в этом.
В моем "идеальном мире" эта задача бы реализовывалась так:
1. У нас есть абсолютные даты у объектов. Ок.
2. Нам надо показывать относительное время, т.е. интервал между "сейчас" и датой в объекте. Значит у нас есть "сейчас", текущее время.
3. Интервал - вычисляемое значение, зависит от текущего времени и даты в объекте
4. Удобно сделать компонент <Item object={object} now={currentTime} /> - если очень хочется, можно currentTime в хук убрать...
5. Отдельно в основном объекте фетч и стейт со списком объектов, текущей страницей, состоянием загрузки и т.п., и да, он берет и проходит по списку и рендерит <Item ... />
6. Если текущее время не в хук убрано, то в основном объекте на didMount (ой, простите в useEffect) ставится таймер, который с снужным интервалом апдейтит стейт с currentTime...

Как-то так...
источник

СС

Сергей Сергеевич... in React Native — русскоговорящее сообщество
Gena Black
Дело не в стейт менеджере. Дело в том, что модель не соотвествует коду... очень сложно...

Ну хуки, так хуки... но тогда 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]) 🤦‍♂️, есть ли более рациональное решение?
источник

СС

Сергей Сергеевич... in React Native — русскоговорящее сообщество
Сергей Сергеевич
Благодарен за уделенное внимание, попробую так.

Есть один жесткий 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]) 🤦‍♂️, есть ли более рациональное решение?
😂 ну то есть

var date = date.split(' ')
var time = date.split(':')

var newYear = new Date(date.split('.')[2], date.split('.')[1]-1, date.split('.')[0], time.split(':')[0], time.split(':')[1], time.split(':')[2]);
источник

СС

Сергей Сергеевич... in React Native — русскоговорящее сообщество
Я имею ввиду ещё изящнее
источник

GB

Gena Black in React Native — русскоговорящее сообщество
Сергей Сергеевич
Благодарен за уделенное внимание, попробую так.

Есть один жесткий 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]) 🤦‍♂️, есть ли более рациональное решение?
1. В дате отсутствует информация о таймзоне. В js объекты Date умеют только "текущую таймзону" и UTC... это косяк в протоколе.
2. Изящнее такое регулярками парсить. См RegExp
источник

СС

Сергей Сергеевич... in React Native — русскоговорящее сообщество
И moment(.js) может решить эту задачу?
источник

AC

Alexandr Cebotari in React Native — русскоговорящее сообщество
моментом можно решить задачу, если известен формат даты, который приходит, его можно легко распарсить и на выходе получить нужный тебе формат
источник

AC

Alexandr Cebotari in React Native — русскоговорящее сообщество
без того,  чтоб писать очень длинные структуры по типу, что написаны выше
источник

AC

Alexandr Cebotari in React Native — русскоговорящее сообщество
moment("12-25-1995", "MM-DD-YYYY");
источник

AC

Alexandr Cebotari in React Native — русскоговорящее сообщество
moment('24/12/2019 09:15:00', "DD MM YYYY hh:mm:ss");
источник

AN

Andrei Nikitin in React Native — русскоговорящее сообщество
Gena Black
Я вот всё не могу понять, чем синтаксис const myFunc = () => { ... } так привлекает всех...
Чем function myFunc() { ... } хуже? По мне он гораздо читабельней
arrow function не содержит в себе контекста. собственно в этом и есть основной профит
источник

GB

Gena Black in React Native — русскоговорящее сообщество
Andrei Nikitin
arrow function не содержит в себе контекста. собственно в этом и есть основной профит
В смысле? Наоборот она this замыкает!
источник

DB

Denis Barvitskiy in React Native — русскоговорящее сообщество
Gena Black
В смысле? Наоборот она this замыкает!
чей?))
источник

GB

Gena Black in React Native — русскоговорящее сообщество
Denis Barvitskiy
чей?))
Текущей области видимости.
Ребят, ну вы что? Реально никто JS не знает? )
источник

AN

Andrei Nikitin in React Native — русскоговорящее сообщество
не содержит в себе СВОЕГО контекста если угодно.
источник

S

Sample Name in React Native — русскоговорящее сообщество
Gena Black
В смысле? Наоборот она this замыкает!
Это и используетс активно
источник

AN

Andrei Nikitin in React Native — русскоговорящее сообщество
Gena Black
Текущей области видимости.
Ребят, ну вы что? Реально никто JS не знает? )
прям стало интересно ваш взгляд на то как работают области видимости, откуда они берутся и какие в связи с их работай накладываются ограничения.
источник