
Mike
19.05.2017
13:52:14
https://t.me/it_holywars тебе сюда

Oleg ?
19.05.2017
13:54:23
:C

Алихан
19.05.2017
14:27:37

Mike
19.05.2017
14:32:50
<шутка про то, что ты перепутал джаваскрипт с джавой>

Google

Ivan
19.05.2017
14:51:29
так, всякие не очень вопросы тут можно задавать?

Сергей
19.05.2017
14:53:00
насколько "неочень"

Ivan
19.05.2017
14:55:03
хочу чтобы меня кто-то ткнул носом в best practices для валидации формочек

Сергей
19.05.2017
14:55:19
нет такого

Ivan
19.05.2017
14:58:35
отстой какой и что брать библиотеку у которой больше всех звездочек или велосипед писать?

shadowjack
19.05.2017
14:59:53
https://www.npmjs.com/package/react-validation
А еще вроде в react-bootstrap есть что-то, если его используешь.

Maksim
19.05.2017
15:10:09
Недавно задавался этим вопрос, и не нашел то что бы понравилось по использованию.
Сделал через класс который наследую в компоненте.
Состояние формы держу в стейте, все автоматом валидируется при использования методов для обновления полей и отправке формы. Поддерживаю несколько форм в компоненьте. Всегда есть актуальное состоание valid. Ошибки вывожу только после попытки отправить форму.
Не знаю на сколько правильное рещение, но использовать очень удобно, и минимум кода

HipJoy
19.05.2017
15:10:37
кто юзал material-ui, поделитесь впечатлениями)

Maksim
19.05.2017
15:10:38
Сама валидация через revalidator

Lupsick
19.05.2017
15:24:36

Victor
19.05.2017
15:26:32

Google

Razzwan
19.05.2017
15:39:47

Victor
19.05.2017
15:40:42
+

Razzwan
19.05.2017
15:40:43

HipJoy
19.05.2017
15:40:53
а какие альтернативы?

Razzwan
19.05.2017
15:41:43
Есть классный компонент-таблица, селект очень хороший есть.
Драг анд Дроп отличный есть отдельно. И т.д. ...

HipJoy
19.05.2017
15:45:38
мм)
спасибо)

Mike
19.05.2017
15:46:19
ну писать свои материал инпуты и селекты прям таки заебаться можно
с этими их анимациями
там же в спеке написано, что все анимации должны рипптиться от точки нажатия и т.п.

Razzwan
19.05.2017
15:48:17
У меня лично возникали проблемы с изменением дизайна материал компонентов. Причем, довольно серьезные. Да и просто, не все у них так уж хорошоо

Mike
19.05.2017
15:50:10
изменение дизайна да
тот же стиль слайдер-селекта поменять я сам убился

HipJoy
19.05.2017
16:06:06
а что насчет semantic ui?

code4aman
19.05.2017
16:08:09
много чего нет из коробки

Maxim
19.05.2017
16:16:45
Вопрос с к ынтырпрайз SPA девелоперам. Как у вас построен процесс создания мокапов, скетчей, прототипов ?
встроен ли UX дизайнер туда, или всё прототипится на реакт компонентах ?

Google

Mike
19.05.2017
16:17:29
скетч, инвижн, зепплин, где как
или ты не про это?
живой UX дизайнер встроен =)

Maxim
19.05.2017
16:18:09
дизайнер, вооружённый всем вплоть до фотошопа ? )

Mike
19.05.2017
16:18:45
ога

Maxim
19.05.2017
16:19:55
и как, по ощущениям - много работы сокращает ? Если это бизнес апп, и вроде бы все контроллы стандартные

Mike
19.05.2017
16:20:54
я бы сказал, что не столько сокращает, сколько без него это было бы пиздец уродливо
и неюзабельно

Elena
19.05.2017
16:22:57
Психбольница в руках пациентов - на эту тему книжка

Maxim
19.05.2017
16:23:34
ищу аргументы для психов-коллег в пользу найма UX дизайнера

Mike
19.05.2017
16:28:31
он риал знает как сделать УДОБНО, причем удобно любому идиоту
покажи им серию силиконовой долины про бетатест например

Mike
19.05.2017
16:28:51
это конец второго сезона, кажется

Maxim
19.05.2017
17:03:46
у коллег опасения, что у нас слишком сложная предметная область
и нужно кого-то в неё вводить, что бы вникал. Да ещё тратить время на передачу задачи не направую разрабам, а через UX дева
Mike, Спасибо в любом случае. Теперь в моём предложении будет звучать больше уверенности)

Павле
19.05.2017
17:29:28
Парни, а как вы грузите необходимые данные с сервера в redux? Диспатчите FETCH-экшены в lifecycle методах компонентов?

Stepan
19.05.2017
17:31:06
Я сделал себе отдельную папочку api, из которой импортирую функции и юзаю в компонентах, да
Хз, правильно ли это

Павле
19.05.2017
17:31:24
Может быть есть какие-то решения, упрощающие жизнь? HoC какие-нибудь для автофетча

Google

Павле
19.05.2017
17:32:23
Весьма утомительно в большом проекте заниматься синхронизацией удаленных данных с redux-store.

Stepan
19.05.2017
17:32:47
Большие проекты это вообще утомительно)

Andrey
19.05.2017
17:33:12
в контейнере который над компонентом делаю такую функцию
const loadData = props => {
// грузим услугу взяв айдишник из роутера
const id = props.params.id;
props.actions.fetchService(id);
};
/// далее в этом контейнере
componentDidMount() {
// если данные в хранилище не те что в адресной строке
const needFetching = Number(this.props.data.id) !== Number(this.props.params.id);
if (needFetching) {
loadData(this.props);
}
}
componentDidUpdate(prevProps) {
if (Number(prevProps.params.id) !== Number(this.props.params.id)) {
loadData(this.props);
}
}

Павле
19.05.2017
17:34:33


Andrey
19.05.2017
17:35:00
а запросом управляет промис-мидлвэр..
экшон для этого мидлвэра примерно вот так выглядит
import api from '../api';
export function fetchPageData(url) {
return {
types: ['FETCH_PAGEDATA_BEGIN', 'FETCH_PAGEDATA_SUCCESS', 'FETCH_PAGEDATA_FAILURE'],
promise: api.getPageData(url),
};
}
хз есть ли но вот так удобно вроде

Admin
ERROR: S client not available

Andrey
19.05.2017
17:36:11
— в контейнере детектируешь чего тебе не хватает и запрашиваешь у сервера... в render() в это время пишешь чтото типа return 'загрузко';
интересно было бы узнать как ещё лучше такое делается

Stepan
19.05.2017
17:40:43
А если по событию нужно запрос делать?

Павле
19.05.2017
17:40:50
Получается так:
function LocationTypesList = reconnect((state, props) => ({
locationTypes: locationTypes.list(state, props.filters)
}))(function ({locationTypes}) {
// рендерим locationTypes.data
})

Stepan
19.05.2017
17:40:58

Павле
19.05.2017
17:41:06
но это интерфейс
через стор
в reconnect проверяется необходимости загрузки с сервера

Stepan
19.05.2017
17:43:23
То есть, контейнер подписан на стор и просто отдаёт готовые данные в отображающий компонент. Звучит вкусно

Павле
19.05.2017
17:45:22
запрос данных по разным причинам: отсутствие данных в редакс, тухлость кеша (после отправленных POST-запросов), форсированно
сначала пробовал запихнуть логику синхронизации нагло в селекторы, и из них диспатчить запросы, но реакт ругался

Джон
19.05.2017
18:33:54
ребя, а как в сагу передать аргумент? например, я делаю там запрос, и надо в запросе указать ID, который я получаю по тапу
или это так не делается?

Google

Dmitrii
19.05.2017
18:43:50
по идее диспатчишь экшн с этим самым id, сага ловит этот экшн и запускает сайд эффекты
запросы к апи/etc
а потом уже диспатчит экшены "успех"/"неуспех" с данными, которые обычными редьюсерами обрабатываются
но я не настоящий сварщик, мне только предстоит это кодить

Джон
19.05.2017
18:48:26

Mike
19.05.2017
18:49:02
или thunk
мы тут так и не выяснили чем сага лучше

Джон
19.05.2017
18:49:28
слышал, что thunk попроще немного

Mike
19.05.2017
18:49:30
а бойлерплейта у санков меньше
сильно проще

Dmitrii
19.05.2017
18:49:41
я вот честно не очень понял суть санка

Mike
19.05.2017
18:49:46
у тебя экшн становится не объектом, а функцией
конец
а у саги трэш и чертовщина

Джон
19.05.2017
18:50:08
но мне как нубу понятны генераторы. Нафигачил цепочку действий и все

Dmitrii
19.05.2017
18:50:11
зато синхронно и тестировать проще кмк

Ywein
19.05.2017
18:50:23
Я вот как раз хотел спросить в чем преимущество саги по сравнению с тханком?

Mike
19.05.2017
18:50:30
ну вот я слышал про тесты да