
Vadim
30.07.2018
13:37:03
Есть ли тут люди которые одновременно ведут проект и на реакте и на реакт нейтиве? :)

Игорь
30.07.2018
13:37:12
Парни, в селекторе выбираю, связанные данные. Но вот проблема, что делать если данных еще нет

AP?
30.07.2018
13:37:12

Игорь
30.07.2018
13:37:42
Где можно даждаться прихода данных, и главное как ?

Google

Konstantin
30.07.2018
13:39:03
default
Спасибо, сомнений теперь немного меньше

Alexey
30.07.2018
13:44:10
Есть таблица и в зависимости от типа данных по разному выводить в ячейках.
Кто может понять как это должно выглядеть из этого условия -
"If it's an object, write it as a top-down list with pairs {subFieldName: value}" ?

Cenator
30.07.2018
13:54:59

Андрей
30.07.2018
13:55:30
потому что количество цифр правильное для +7 региона

Cenator
30.07.2018
13:56:58
как тебе такое?

Дмитрий
30.07.2018
13:57:19
илон маск

Андрей
30.07.2018
13:57:34
А, это possible отвечает за то, что я сказал

Cenator
30.07.2018
13:57:39
вот вот

Андрей
30.07.2018
13:58:11
whether it's a "valid" (real) phone number.

Cenator
30.07.2018
13:58:36
просто странно что ни 222 ни 444 не может быть в рф, но он пропускает

Alexey
30.07.2018
13:59:24
date-fns не может валидировать дату я правильно понимаю?

Андрей
30.07.2018
13:59:47

Google

Alexey
30.07.2018
14:00:08
isDate какое то лютое говно, там просто instanceof Date

Cenator
30.07.2018
14:00:26

Андрей
30.07.2018
14:01:45
https://github.com/catamphetamine/libphonenumber-js#isvalidnumbernumber-defaultcountry

Oleg
30.07.2018
14:14:42
как написать кусок кода но что бы он не попадал в бандл на продакшен?

Cenator
30.07.2018
14:15:53
проверять process.env.NODE_ENV

Alexey
30.07.2018
14:19:21
omg кто мне советовал date-fns зачем так издеваться, вот как он умудряется из строки 'iPhone 7' получить дату?

Vadim
30.07.2018
14:20:36

Alexey
30.07.2018
14:21:54
modern library бл*ть
а не это стандартный объект Date виноват, удивительно
new Date('iPhone 7')
Sun Jul 01 2001 00:00:00 GMT+0400 (Москва, летнее время)
бля я по ходу что то про него не знаю

Oleg
30.07.2018
14:25:22

Alex
30.07.2018
14:26:40

Cenator
30.07.2018
14:26:45

Alexey
30.07.2018
14:27:36

Сергей
30.07.2018
14:28:02

Alex
30.07.2018
14:28:15
Значит, подзабыл уже((

Alexey
30.07.2018
14:29:58

Сергей
30.07.2018
14:30:14

Alexey
30.07.2018
14:35:15
Даже на mdn ифна устарела -
new Date('foo-bar 2014').toString();
// вернёт: "Invalid Date"
а хер там, генерит дату
Зачем тогда формат ISO

Google

Nikita
30.07.2018
14:35:48

Alexey
30.07.2018
14:36:00
В хроме только проверил

Диванный
30.07.2018
14:40:02
Если нужно загрузить в апишку файл 50мб, какое решение будет лучше?

Андрей
30.07.2018
14:40:10
Господа, подскажите
Есть три компонента: <Dropdown /> => <DropdownItemsContainer/> => <DropdownItem/>
Рендер идет через {props.children}
Как можно пропустить функцию из <Dropdown /> через/в обход {props.children}, но чтобы <DropdownItem/> получил эту функцию?
Думал контекст заюзать, но слишком тупо. Голова не варит, решение должно быть простым(

Andrew
30.07.2018
14:40:52

Stan
30.07.2018
14:43:34

dima
30.07.2018
14:49:59
юзал кто module-resolver с джестом ?

Игорь
30.07.2018
14:52:07
Парни подскажите плиз. На момент когда mapStateToProps дергает селектор, данные еще не подгрузились. Что с этим делать ? Как дождаться загрузки а уже после вызывать селектор ???

Cenator
30.07.2018
14:54:18

Игорь
30.07.2018
14:55:58
Задать дефолтное значение
а как его задать ? у меня селектор выбирает связанные данные, и выдает составную модель, тоесть селектор над селекторами. Но когда он их сцепляет их еще просто нет...

Сергей
30.07.2018
14:56:18

Max
30.07.2018
14:56:21
ставь флаг — загружено или нет

Сергей
30.07.2018
14:56:26

Max
30.07.2018
14:56:32
если не загружено — показываешь лоадер


Игорь
30.07.2018
14:57:31
Так делать не надо
подскажите, а как надо ? я использую redux-orm мне казалочь что она работает с данными как со связными сущьностями
Так делать не надо
import { createSelector } from 'redux-orm';
import orm from './orm';
const dbStateSelector = state => state.db;
const authorSelector = createSelector(
orm,
// The first input selector should always select the db-state.
// Behind the scenes, createSelector begins a Redux-ORM session
// with the value returned by dbStateSelector and passes
// that Session instance as an argument instead.
dbStateSelector,
session => {
return session.Author.all().toModelArray().map(author => {
// Returns a reference to the raw object in the store,
// so it doesn't include any reverse or m2m fields.
const obj = author.ref;
// Object.keys(obj) === ['id', 'name']
return Object.assign({}, obj, {
books: author.books.toRefArray().map(book => book.name),
});
});
}
);
вот пример из оф доки. проблема в том что на момент
books: author.books.toRefArray().map(book => book.name),
данных просто нет


Max
30.07.2018
15:00:00
а, тут какая-то страшная обвязка
может ну ее нахрен? )

Vadim
30.07.2018
15:00:23

Google

Max
30.07.2018
15:00:36
ставишь по-дефолту в стейт loaded: false
если он false то не используешь свой селектор

Игорь
30.07.2018
15:03:06
чат не читай @ сразу отвечай
Бро я пытался послать ее нахрен, но писать свои обвязки данных, и выплевывать костыли в виде undefaind - ов в связных моедлях какая то жесть. Оно все равно начинает зудеть.

Max
30.07.2018
15:04:35
как по-мне ненужный слой абстракции который будет течь :)

Admin
ERROR: S client not available

Max
30.07.2018
15:04:39
я сказал loaded: false а не isLoading: true
две большие разницы
а еще лучше стейт-машину простую
INITIAL -> LOADING -> LOADED

Dmitrii
30.07.2018
15:07:40
что там щас стоит использовать на клиенте, чтобы строку захэшировать и потом расхэшировать, только чтобы было по короче чем base64?

Max
30.07.2018
15:09:25
ничего

Игорь
30.07.2018
15:10:08
а еще лучше стейт-машину простую
INITIAL -> LOADING -> LOADED
уф... чувствую костыли будут... Ну сам по суди
books: author.books.toRefArray().map(book => book.name
эта строка выдает ошибку. я могу ее вынести в компонент, и сделать это там. Но это немного странно. Так как я хотел бы получать готовый собранный объект из селектора.
2 я могу делать связть в нутри селектора, но тогда мне нужно портировать в него еще и состояние в виде IsFetching. а так как у меня идет связь с 5 моделями то это только показвает насколько стремный потход.
тоесть я не где в реселекте не видел что бы связные данные при выборках проверяли

Max
30.07.2018
15:10:27
можно тлдр?
еще раз говорю — не юзай селектор пока данные не загрузил

Игорь
30.07.2018
15:11:30

Andrey
30.07.2018
15:11:30

Max
30.07.2018
15:11:44

Google

Andrey
30.07.2018
15:13:43
теперь хочет, да :)
Логично, да. Кстати, коль вопрос поднят, как считаешь, как это делать лучше, не используя всякие саги и прочие сайд эффекты? Ок ли это сувать в редакс и на каждый экшн проверять, что там у тебя осталось?

Max
30.07.2018
15:14:10
у меня нет редакса ^_^

Andrey
30.07.2018
15:14:31

Max
30.07.2018
15:14:40
на велосипеде

Игорь
30.07.2018
15:14:50

Andrey
30.07.2018
15:15:14
на велосипеде
Сколько колес? Педалей? Седушку прикрутил или прямо на штырь? ))

Max
30.07.2018
15:15:21

Игорь
30.07.2018
15:15:23
Когда гружу данные в селекторе, тайп данных еще нет

Max
30.07.2018
15:16:10
с одной попытки

Andrey
30.07.2018
15:16:30

Max
30.07.2018
15:16:53
Не угадал. Не юзать селекторы для незагруженных данных :)

Игорь
30.07.2018
15:17:38
с одной попытки
простоавить дефолтное значение isLoaded, и если данных еще нет просто не обращаться к селектору.

Andrey
30.07.2018
15:17:46

Max
30.07.2018
15:18:13
но isLoading заодно поможет тебе сказать пользователю о том что что-то грузится
isLoaded
ED а не ING
:)