@react_js

Страница 785 из 5115
Roy
29.12.2016
10:39:45
это его единственная выгода?)

Danila
29.12.2016
10:40:21
ну если придрочиться преставлять state всего приложения в виде таких простых неглубоких объектов - выгода довольно очевидна

но вообще, если он и правда просто реализует pure-render-mixin - то да

Roy
29.12.2016
10:40:58
Все) Понял) Спасиииибо большое)

Google
? Алёна
29.12.2016
10:41:18
Лол. Чятик не подгрузился и я поиграла в некро =(

Vitaly
29.12.2016
10:47:51
Sasha
29.12.2016
10:50:52
ребят, а как на счет того что бы не заморачиваться с стейтом, а юзать ref?)(можно еще в промис прикрутить да бы контролировать маунты компонентов)
на сколько я понимаю ref нужен для того, чтоб читать данные какого-нибудь компонента/тега, а то что есть возможность оттуда что-то выносить и использовать это уже извращение, мое имхо

Roy
29.12.2016
10:53:31
я вообще стараюсь через ref ничего не делать

Алексей
29.12.2016
10:54:03
на сколько я понимаю ref нужен для того, чтоб читать данные какого-нибудь компонента/тега, а то что есть возможность оттуда что-то выносить и использовать это уже извращение, мое имхо
ref обычно для неуправляемых компонент, то есть данные лежат внутри DOM самих контролов, а value/onChange позволяет точно управлять состоянием контрола без необходимости трогать DOM

и вообще можно хранить это состояние в том же сторе того же Redux

Vitaly
29.12.2016
11:10:19
пффф... ref - ссылка(reference) на инстанс, событие - именно событие, а не состояние. То есть вызов ref.danceWithBareAss() - вполне нормально и никем не запрещено... зачем выдумывать себе лимиты использования библиотеки? Типа я не буду использовать $.closest потому что там две буквы s в названии...

Алексей
29.12.2016
11:13:24
ну я например привык записывать компоненты в виде обычных функций

и там ref недоступен

плюс держать ВЕСЬ стейт приложения может быть довольно убобным

например его можно целиком одной строчкой запихать в localStorage

Google
Алексей
29.12.2016
11:14:28
если там конечно циклических ссылок нет

Vitaly
29.12.2016
11:17:54
так я и не говорю про стейт, вопрос был в вызове метода при клике. Клик - это эвент, кликнуто - состояние. а функции, никто не запрещает тебе юзать hoc ^^

Алексей
29.12.2016
11:18:23
а при чём тут клик?

Vitaly
29.12.2016
11:19:40
внутри two есть кнопка, по нажатию должен происходить экшн в компоненте one.

Алексей
29.12.2016
11:20:40
аааа

внутри two есть кнопка, по нажатию должен происходить экшн в компоненте one.
А что значит "происходить экшн в компоненте one"? Это как-то неправильно. Экшены должны же вызываться из компонент, а не обрабатываться. Точнее могут конечно обрабатываться (как правило тривиально), но чтобы обрабатывать экшн соседнего компонента - это как-то странно.

Вообще, я считаю, что в идеальном мире построение UI ведётся с помощью чистой функции. Это по идее должно невероятно облегчать отладку. Причём желательно, чтобы эта функция была от одного аргумента - от стейта. При использовании React + Redux и без использования стейтов компонент так и происходит.

Только по моему мнению, иммутабельность стейта в Redux - это лишнее требование.

Bogdan
29.12.2016
11:40:27
иммутабельность всегда хорошо
Иммутабельность запрещает циклические ссылки между объектами (иначе любое изменение приведет к перегенерации всего состояния). Почему-то всегда сравнивая mobx и redux забывают про главную киллер-фичу mobx - возможность хранить в состоянии ссылки между объектами, которые могут указывать друг на друга (циклические ссылки). Например у объекта юзера есть массив todos объектов todo и у каждого объекта todo есть ссылка обратно на объект юзера. Эта простая концепция позволяет по данной схеме сущностей моделировать состояние одним единственным образом и хорошо масштабируется какое бы количество сущностей и one-to-many связей там не было бы. И решает много проблем с моделированием деревьев в редаксе

Алексей
29.12.2016
12:01:00
MVP
29.12.2016
12:12:20
скажите есть примеры UI либ под react с inline edit полями

я тут накатал свое но боюсь косячно все очень ((

? ethorz
29.12.2016
12:26:33
https://material.uplabs.com/

может кому интересно будет

сайт как источник вдохновения

Dmitry
29.12.2016
12:29:45
powerpoint material design template with animations :0

Google
Andrew
29.12.2016
12:51:52
Вообще, я считаю, что в идеальном мире построение UI ведётся с помощью чистой функции. Это по идее должно невероятно облегчать отладку. Причём желательно, чтобы эта функция была от одного аргумента - от стейта. При использовании React + Redux и без использования стейтов компонент так и происходит.
я попробовал писать компоненты вообще без стейта, только с пропсами, даже хэндлеры все приходят с пропсами, а стейт весь в сторе редакса. короче мне понравилось, хотя меня раскритиковали за раздутые редьюсеры, но я потом над этим еще поработаю

Только по моему мнению, иммутабельность стейта в Redux - это лишнее требование.
без иммутабельности не будет работать машина времени, плюс становится слишком запутанным отслеживание изменений стейта. а так у тебя есть предыдущий стейт и следующий стейт и все просто

Иммутабельность запрещает циклические ссылки между объектами (иначе любое изменение приведет к перегенерации всего состояния). Почему-то всегда сравнивая mobx и redux забывают про главную киллер-фичу mobx - возможность хранить в состоянии ссылки между объектами, которые могут указывать друг на друга (циклические ссылки). Например у объекта юзера есть массив todos объектов todo и у каждого объекта todo есть ссылка обратно на объект юзера. Эта простая концепция позволяет по данной схеме сущностей моделировать состояние одним единственным образом и хорошо масштабируется какое бы количество сущностей и one-to-many связей там не было бы. И решает много проблем с моделированием деревьев в редаксе
я это решил редьюсером более высокого уровня, который просто имеет доступ ко всему стору, и диспатчил через него такие экшены, например отдельные контролы в форме - отдельные бранчи стора, а сама форма с валидатором - весь стор видит. опять же меня раскритиковали, но скорее по части структуры кода, а не по логике.

Nikolay
29.12.2016
13:31:26
Всем привет! https://getstorybook.io/ пользовался кто-нить?

Pavel
29.12.2016
13:46:37
Ребят, все привет. Не кидайтесь помидорами, я новичек. Подскажите пожалуйста как на кнопку повесить переход на другую страницу прописанную в роутах? Или может подскажите как лучше сделать авторизацию. Т.е. нажал ввел данные, отправил на сервак, получил ответ - вошел. На скрине мой текущий код, но в консоли браузера: TypeError: Cannot read property 'push' of undefined. Что я делаю не так? Авторизация проходит, проблема в переходе на страницу при успешной авторизации

хм, а куда сообщение делось? Повторюсь. подскажите пожалуйста как сделать корректный переход на страницу при успешной авторизации. Сейчас в браузере выдает TypeError: Cannot read property 'push' of undefined. ну и критика любая приветствуется, т.к. новичек и только вилваюсь

Vladimir
29.12.2016
13:49:59
this.props.router

Michael
29.12.2016
14:03:57
Ребята, подскажите пожалуйста есть массив a = [ {foo: 5, ....}, {foo: 10, ....}, {foo: 20, ....} ] как можно получить сумму всех foo?

Eugene
29.12.2016
14:05:55
Пишешь функцию для сложения элементов массива, передаешь в неё a.map((el) => el.foo)

Dartess
29.12.2016
14:06:40
а reduce не проще?..

Michael
29.12.2016
14:06:41
понятно, спасибо большое

Nikolay
29.12.2016
14:06:47
Вообще, редьюс как раз для таких целей очень хорошо подходит.

Хотя, мне крайне импонирует вариант с eval :D

Michael
29.12.2016
14:07:38
думал может есть что-то как в рельсах a.sum(:foo)

Alexander
29.12.2016
14:08:07
a.reduce((prev, cur) => prev + cur.foo, 0)

Roman
29.12.2016
14:08:28
Google
Nikolay
29.12.2016
14:10:27
R.pipe(R.map(R.prop('foo')), R.sum) — вот так еще можно

Michael
29.12.2016
14:11:26
a.reduce((prev, cur) => prev + cur.foo, 0)
да уже вычитал после сообщения от @dartess

Admin
ERROR: S client not available

Michael
29.12.2016
14:11:42
спасибо большое

Yaroslav
29.12.2016
14:12:25
?
Хохотач

Dartess
29.12.2016
14:13:22
Раз уж я осмелился написать, подскажите пожалуйста, "getInitialState" ведь должен идти раньше, чем "render"? Или я что-то путаю?

Brs
29.12.2016
14:16:16
сейчас же не стильно писать getInitialState, надо через свойство класса начальный state объявлять или this.state в конструкторе на худой конец

Eugene
29.12.2016
14:16:19
Раз уж я осмелился написать, подскажите пожалуйста, "getInitialState" ведь должен идти раньше, чем "render"? Или я что-то путаю?
Насколько мне известно, использовать getInitialState не рекомендуется. Вместо этого, следует в конструкторе задать начальное значение state.

Dartess
29.12.2016
14:18:17
Спасибо) Я пока не знаю, что стильно, что нет.

Дмитрий
29.12.2016
15:29:34
Потому что не нужно пихать объекты в стор целиком, а нормализованными, тогда и цикличность будет простой

Felix
29.12.2016
15:59:26
есть у меня компонент, юзается на двух страницах, как часть большой страницы и отдельная страница на которой он один, юзаю react-helmet чтобы тайтлы ставить и react-router для роутинга, есть какие-нибудь способы не ставить тайтл когда он включен в страницу и ставить когда он один на странице, кроме как костыльно проверять локейшен?

code4aman
29.12.2016
16:03:00
все равно костыль получится ж)

Алексей
29.12.2016
16:03:36
без иммутабельности не будет работать машина времени, плюс становится слишком запутанным отслеживание изменений стейта. а так у тебя есть предыдущий стейт и следующий стейт и все просто
С чего это вдруг? Перидоически сохраняем стейт в JSON (с разрешением циклических зависимостей) и пихаем эту строку в массив. Да, не самая оптимальная штука, но мы ведь об отладке говорим?

Felix
29.12.2016
16:05:32
все равно костыль получится ж)
ну да, наверное лучшим способом будет создать еще один компонент, в котором будет только helmet и этот компонент и в роутер пихнуть его

Eugeniy
29.12.2016
16:36:02
Поделитесь опытом, кто как делает таблицы под моб. разрешение экрана?

Vladimir
29.12.2016
16:38:10
Игнорируем его

Eugene
29.12.2016
16:39:14
Поделитесь опытом, кто как делает таблицы под моб. разрешение экрана?
Можно в контейнер с overflow: auto засунуть, чтобы появлялся скролл на маленьких экранах.

Eugeniy
29.12.2016
16:39:43
Игнорируем его
Неплохооо, весьма

Pavel
29.12.2016
16:40:33
Неплохооо, весьма
Мы с заказчиком последним договорились просто на хром последний и на минимум фул хд

Google
Pavel
29.12.2016
16:40:43
Так что выходов из ситуации масса!

Eugeniy
29.12.2016
16:41:30
Я просто пока обошелся overflow-x scroll, просто интересно, кто как решает такую проблему

Nikita
29.12.2016
16:49:16
Я просто пока обошелся overflow-x scroll, просто интересно, кто как решает такую проблему
я иду к дизайнеру/ специалисту по ui/ux и говорю давай размеченные макеты на мобилку

Nikita
29.12.2016
16:49:34
ну и главное сделать злобное лицо чтоб сомнений не осталось

а так я стараюсь избегать таблиц для мобилок, по возможности переделывать их в список с раскрывающимися елементами, для мобилки удобней, да и логично оставить только самое главное, а остальное убрать, например из таблицы оставить 2-3 колонки чтоб в ширину помещались

без скрола, а при тапе раскрывались и там остальные значения в столбик, но подходит не для всех данных

Eugeniy
29.12.2016
16:56:22
Понятно) спасибо, просто до этого не работал с таблицами для моб. почти

смотрел пару решений на различных css-tricks

Nikita
29.12.2016
16:59:25
но я уверен что в большинсве случаем можно избежать табличного прдставления данных, а для тех где не избежать там важность информации важнее красоты но я нихрена не понимаю в ui/ux, курсов там всяких не заканчивал, так что меня слушать на свой страх и риск =)

Страница 785 из 5115