Daniil
ага, я просто сократил запись)
Oleg
то есть тебе надо распарсить текстовый файл по отступам в ноды?
Daniil
нет это я сейчас уже делаю, мне как раз нужно избавится от этого формата чтобы хранить это дерево в базе но 0000001 | {c, id:01_01_01, parent 01_01} 0000002 | {a, id:01, parent null} 0000003 | {b, id:01_01, parent 01} я специально поменял строчки местами (потому что такое может быть при модификации дерева)
Oleg
я бы добавил все же поле children, это значительно ускорило бы процесс построения
Daniil
и в итоге я теряю O(n) потому что как минимум может быть сортировка что в текстовом формате не требовалось, но дальше еще может быть добавлена рекурсия (чего бы не хотелось)
Oleg
почему рекурсия это то чего бы не хотелось?)
Oleg
ну в данном случае вилка: либо сортировка, либо доп поле чилдрен
Daniil
я бы добавил все же поле children, это значительно ускорило бы процесс построения
но есть глубина и при таком подходе в базе будут храниться только верхний уровень со всеми потомками (да для оптимизации отрисовки лучше делать верхний уровень закрытым) но ...
Daniil
ну в данном случае вилка: либо сортировка, либо доп поле чилдрен
я склоняюсь к сортировке пока правда не уверен как ее сделать если ключи хэш
Oleg
про верхний уровень не понел
Daniil
ну т.е. когда проводник открываешь по умолчанию видны только корневые папки а далее по мере открытия (как в винде в общем) - это оптимальное решение но мне не совсем подходит
Oleg
сорировка в любом случае канеш нужна, даже с чилдренами мне рпишлось делать сортировку в рамках одно ветки
Daniil
ну в случае чилдренов не обязательно это же json а массив упорядочить в json уже можно
Daniil
то есть тебе нужен по сути еще один массив адишников expanded , массив раскрытых нод
это мне думаю не нужно, у меня этим уже занимается само дерево
Oleg
как само?
Artem
подскажите, как можно выводить текущую дату на момент выполнения скрипта. в таком формате 2019-06-19 08:56:40. как можно это реализовать,?
Daniil
ну потом это преобразуется в тот вид: const testNodes = { '0-0': { name: '0-0', children: ['1-1','1-2'], parentId: '' }, и там уже событиями и DOM структурой разруливается
Oleg
ну то есть, допустим нода не раскрыта и ты ей не указваешь children так?
Daniil
нет в общем случае я сразу все их загоняю, но так как у меня будет фильтрация то потом уже буду прятать (это не сложно решить)
Oleg
а как ты будеш определять какие ноды открыты а какие закрыты?
Daniil
а как ты будеш определять какие ноды открыты а какие закрыты?
у меня грубо идет: <ul id=""tree> ... <li> <ul> <li>children</li> .... <ul> </li> .... <ul>
Oleg
ну лан)
Oleg
потом отпишись как сделал) я прост этим вопросом месяц занимаюсь, довольно хорошо погрузился в тему деревьем
Oleg
😎
Daniil
подскажите, как можно выводить текущую дату на момент выполнения скрипта. в таком формате 2019-06-19 08:56:40. как можно это реализовать,?
разные есть способы форматирования вот один из них var options = { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute:'numeric', second: 'numeric'}; var today = new Date(); console.log(today.toLocaleDateString("ru", options)); при желании и опираясь на эту инфу можно задать абсолютно любой вывод
Daniil
тем кто любит спрашивать а как это делается в продакшене, думаю в большинстве используется npm модуль moment (у него много разных фишек есть) но его нужно грамотно обрубать чтобы не тянуть весь в билд (много языков)
Антон
кстати наблюдения из прода) Safari не имеет некоторых темплейтов парсинга дат. т.е. то что отлично работает на хроме, может упасть на сафари. У меня такая "фича" была при фильтрации конкатированных дат) так что зарекся использовать стандартный Date.parse
Konstantin
Всем привет, помогите разрешить проблемку Страница 1: список слайдов Страница 2: форма редактирования конкретного слайда Когда на Странице 1 нажимаю кнопку "редактировать слайд", открывается Страница 2, но пустая, если вернуться на Список всех слайдов (Страница1), и еще раз нажать кнопку Редактировать, то открывается форма уже с данными На Странице 2 есть ComponentDidMount, и в логе я вижу, что он вытащил через АПИ нужные данные и отправил в стор, но почему-то в форме остаются старые данные стора (пусто при первой загрузке и старые данные при последующих). скрины кода прикрепляю
Konstantin
контейнер
Konstantin
сама форма
Konstantin
редьюсер
Anonymous
Привет можете помочь в React есть авторизация работает нормально но в URL # попадает http://site.com/#/login как можно убрать #
Daniil
редьюсер
а мог бы ты в сандбоксе накидать?
Petrov
Ну, как-то надо тех кому за 27 утешить то. Поэтому и говорят. Но реальность то такова. Думается - это дарвиновский предел возраста человека. 27 - это нормально. Дожил - уже молодец. А там уж как оно пойдёт то. Природа уже не отвечает. "Шишечки" все рассосались. Дети подросли (если половое созревание то в 14-16 лет). Ну а то что в современном обществе происходит - тут дарвинизм не работает. НЕ УСПЕВАЕТ!
Называется это " дендритные шипики, с таксонами не связано. Информация противоречит научным исследованиям. Новые связи образуются до конца жизни в силу пролиферации астроцитов и олигодендроцитов в областях гиппокампа в основном. Любая стимуляция приводит к образованию дендритных шипиков, которые и являются памятью мозга. Аксоны же от повторения проводимого сигнала утолщаются, чему способствует присутствие серотонина. За его выработкой нужно следить в любом возрасте, йога, физ.нагрузки, медитация , общение. Только в силу очень серьезных дегенеративных заболеваний происходит утрата способности создавать новые воспоминания. Советую узнать о нейро пластичности, прежде чем писать всякую ахинею
Konstantin
а мог бы ты в сандбоксе накидать?
с этим сложновато, проект большой, бакэнд тоже на локалке у меня, без него не будет работать. Мне кажется, что решение простое, вроде по урокам все делал, ощущение, что после обновления стора новыми данными он не приходит обратно обновленный, хотя должен
Daniil
редьюсер
componentDidMount(): вызывается после рендеринга компонента.
Konstantin
componentDidMount(): вызывается после рендеринга компонента.
понял, тогда такой вопрос, didmount вызвался, стор он обновил, разве компонент не должен обновиться после этого сам?
Daniil
нет
Daniil
это стадия монтирования
Oleg
если после дидМоунт изменился стор, и в следствии изменения стора изменились пропсы через коннект редакса, то будет апдейт компоненты
Oleg
и если апдейт дает новые данные то будет рендер
Oleg
судя по табличке)
акионка.
?*
Daniil
я просто по коду не вижу что стейт меняется
Daniil
а увидел)
Daniil
только не увидел диспатча
Konstantin
попробуй использовать mapDispatchToProps
ага, как раз сейчас проверяю это
Petrov
Толстые аксоны — норм или нет.
Толстые аксоны === хороший памятный след, равно как большое количество дендритных шипиков === хорошая память. Процессы взаимосвязаны. Дендритные шипики после появления быстро исчезают - 1-2 недели - поэтому интервальное повторение важнее всего. В курсе Learning How to Learn все техники описаны, которые нужны для успешного обучения мозга новым навыкам.
Daniil
ага, как раз сейчас проверяю это
наверно лучше все-таки хоть абстракно сделать в сандбоксе код вроде бы и без диспатча работает, возможно что-то еще ускользает из виду
Daniil
диспатч есть, не работает как надо все равно. попробую сандбокс
ок, в качестве шаблона можно это взять https://codesandbox.io/s/oj7px08qy9
Konstantin
ок, в качестве шаблона можно это взять https://codesandbox.io/s/oj7px08qy9
https://codesandbox.io/s/happy-sun-b96vb?fontsize=14 открывается проект?
Konstantin
я убрал axios только, потому что он на локальный серв делал запрос
Konstantin
Открываешь Слайды, жмешь Edit и пусто, второй раз открываешь Слайды - Edit и данные есть
Daniil
ща гляну, открывается, буду смотреть
Serik
Перехожу на typescript. Что передать на RouteComponentPorps? class Home extends React.Component<RouteComponentProps<any>, {}>. Думаю any не очень фэншуй
Daniil
Перехожу на typescript. Что передать на RouteComponentPorps? class Home extends React.Component<RouteComponentProps<any>, {}>. Думаю any не очень фэншуй
type TParams = { id: string }; проще говоря зная структуру типа создаешь типы и подставляешь
Serik
type TParams = { id: string }; проще говоря зная структуру типа создаешь типы и подставляешь
блин а если мне нужен и history и match итд мне все прописовать? и какого типа допустим history😂?
Daniil
по докам можно глянуть, я думаю не все можно прописать с учетом вложенности и рекусивных ссылок, там где не критично можно any обычно типизация - это вариант валидации входящих данных (параметров) т.е. если уверен что параметр может быть иным то лучше проверять если нет то не стоит
Daniil
блин а если мне нужен и history и match итд мне все прописовать? и какого типа допустим history😂?
вот кстати https://stackoverflow.com/questions/49342390/typescript-how-to-add-type-check-for-history-object-in-react но опять же. если в твоем коде всегда передается history зачем его вообще проверять тогда
Serik
Спасибо большое
Anonymous
Друзья помогите с решением проблемы! В гитбашхи при переключении бранч выбивает ошибку : error pathspec "......" did not match any file(s) known to git.... Что это за беда такая? Я уже хард ресет сделал. Нету что комитить, стоит на бранч мастер... Прыгнуть в низ ни как не получается...
Oleg
установи smartgit и не парься с башем
Oleg
придет понимание как это все работает и в баше потом если нужно вникнеш
Anonymous
это оно?
Oleg
не, это другая прога
Oleg
https://www.syntevo.com/smartgit/
Anonymous
Кто на какой видос пришол react.js ?
Oleg
все уже посмотрел трижды