@react_js

Страница 4216 из 5115
Дмитрий
18.06.2018
14:35:54
А зачем? Вот я не понимаю необходимости в этом. Приведи пример задачи, где это необходимо.
Вредный вопрос в UI, задачи будут всевозможные, сейчас речь о возможности так делать в принципе. не важно зачем

Google
Сергей
18.06.2018
14:36:19
на твое усмотрение. Допустим, зарезолвить внутренние ссылки
вот кстати внутренние ссылки это жестко для понимания ИМХО

Andrey
18.06.2018
14:36:32
Давайте SQL ещё притащим, камон!

Alex
18.06.2018
14:36:59
Што? А это тут зачем?
ну ты с сервера получил данные из бд, а работать не можешь, что делать?

Дмитрий
18.06.2018
14:37:13
видимо мне надо самому написать эффектор, чтобы понять…∆∆
Я застрял на том что нужно переписать на ризон, так как алгоритм построен на variant type (когда у тебя есть например Север, Юг, Запад и Восток и всё) и на жс это люто вербозно

Andrey
18.06.2018
14:37:38
ну ты с сервера получил данные из бд, а работать не можешь, что делать?
Я не могу решать ту проблему, которую не понимаю.

Сергей
18.06.2018
14:37:42
я вот и попал в тупик, что графы это не решают точно так же как и редакс
я этот тупик уловил давно И пытаюсь найти решение абстрактно от хранилища скорее всего мы строим данные неправильно

Сергей
18.06.2018
14:38:17
мутабельность?
если так, то вернемся к мобх, а мне не очень хочется

Alex
18.06.2018
14:39:02
Я не могу решать ту проблему, которую не понимаю.
это то понятно, уже не раз пишешь, мы обсуждаем проблему когда между сторами есть связи, если нет связей то можно юзать отдельные сторы

Andrey
18.06.2018
14:39:20
Я не вижу проблемы, чтобы у компонента было 100500 сторов.

Google
K
18.06.2018
14:39:57
Привет, у меня проблемка небольшая, warning.js?da67:33 Warning: Cannot update during an existing state transition (such as within `render` or another component's constructor). Render methods should be a pure function of props and state; constructor side-effects are an anti-pattern, but can be moved to `componentWillMount`. Никак трейс не найду, не пойму, куда смотреть, может посоветуете?

Alex
18.06.2018
14:40:06
Если есть связи, то создайте отдельный стор для этого и используйте.
тут появляется проблема модульности, когда хочется юзать частично независимые сторы

Andrey
18.06.2018
14:40:24
Почему не разделить жеско на независимые и связные?

Вам не кажется, что вы создаёте проблему там, где её нет?

Дмитрий
18.06.2018
14:41:41
ты хочешь написав реализацию на ризоне, получить удобное апи в жс?
Да, у ризона есть хелперы для интеропа его структур с жс кодом, более того, это даже не обязательно Вот смотри, ризон компилируется в исходники у меня (чисто для наглядности): https://github.com/zerobias/effector/blob/develop/src/datatype/cmd/Cmd.re https://github.com/zerobias/effector/blob/develop/src/datatype/cmd/Cmd.bs.js И это ещё с учетом того, что при полном переносе движка на ризон из re файла будет убран cmdT и bs.deriving abstract

Alex
18.06.2018
14:42:35
если так, то вернемся к мобх, а мне не очень хочется
я знаю реализацию, которая позволит решить кейс который я скинул, при этом полная модульность и независимость модулей, но при этом получается совмещённая модель разделённого/общего стора, т.е. всё же стор будет как-бы общий, но работать будешь с его частями как с отдельными (за исключением моментов связей между сторами)

Дмитрий
18.06.2018
14:43:09
Да, очень. Вся папка Cmd с типами и конструкторами меняется на один файлик

Alex
18.06.2018
14:44:01
сейчас я пытаюсь решить, где и как должны подключаться отношения между сторами, ибо это не тривиально

Дмитрий
18.06.2018
14:44:15
ты хочешь написав реализацию на ризоне, получить удобное апи в жс?
У меня модуль для работы с графами — это отдельная сущность, называется graphite, у нее есть внешний апи с одной функцией — запустить событие

Илья
18.06.2018
14:44:25
по-поему в чате реакт, совсем не реакт. Админы - остановитесь!

?
18.06.2018
14:44:46
У меня в стейте компонента есть пассив объектов, как заменить объект с определенным индексом?

Google
Alexander
18.06.2018
14:45:22
?
18.06.2018
14:46:07
const itemIndex = this.state.data.findIndex(item => item._id === id); const updatedItem = this.state.data[itemIndex]; const newData = Object.assign({}, this.state.data); newData[itemIndex] = updatedItem;

Дмитрий
18.06.2018
14:46:20
и вычисление зависимостей происходит там?
Нет, зависимости накидываются при создании эвентов, сторов, мапов и т.д. Преимущество и разница в том, что это статическое вычисление, его препак вообще в константу сворачивает на момент запуска событий граф зависимостей уже есть, по нему нужно просто пройтись, последовательно выполняя нужные инструкции

?
18.06.2018
14:46:36
А как безопасно засунуть новый массив в стейет?

Alex
18.06.2018
14:46:49
покажи?
это ограниченная версия в которой я запретил внутреннему стору знать о внешнем, но если изменить это правило, то будет ifFullPath(f => f.users[0].lastName)



?
18.06.2018
14:47:02
Есои я делаю обычно this.setState({ data: newData }) у меня все отваливается

Alex
18.06.2018
14:47:27
yield возвращает инструкции по изменению lastName у текущего модуля

Илья
18.06.2018
14:47:51
Kendr
18.06.2018
14:48:02
Сергей
18.06.2018
14:48:24
Признаюсь. Ничего не понятно

Илья
18.06.2018
14:48:44
Есои я делаю обычно this.setState({ data: newData }) у меня все отваливается
const newData = Object.assign({}, this.state.data); это метод для объектов, а не для массивов

Сергей
18.06.2018
14:48:49
Alex
18.06.2018
14:48:57
https://codesandbox.io/s/github/Wroud/react-painlessform/tree/master/examples/ts этот пример не совсем про изменения в корне стора

А зависимости как резолвишь
это и есть резолвинг зависимости, мне приходит event об изменении чего-то в сторе, функцией is я могу узнать что именно изменилось, и вернуть какую-то реакцию

Google
?
18.06.2018
14:50:56
const newData = Object.assign({}, this.state.data); это метод для объектов, а не для массивов
извеняюсь) я просто ошибся в типе const newData = Object.assign([], this.state.data);

Alex
18.06.2018
14:50:56
но в текущей версии запрещено отслеживать изменения которые пришли из hight ordered стора, т.е. подразумевается отсутствие знания структуры всего состояния

Admin
ERROR: S client not available

Alex
18.06.2018
14:52:25
Слишком сложно...
это максимально просто, зайди в пример в UserForm.tsx потыкай в форме и нажми сабмит, посмотри лог консоли

Сергей
18.06.2018
14:53:48
.map юзай для создания нового массива и обновления элементов
Лучше деструктурирование в новый массив сделать, map должен модифицировать каждый элемент массива и возвращать новый.

Сергей
18.06.2018
14:54:28
Ну я так и написал)

Дмитрий
18.06.2018
14:55:11
Ты уже сделал тулзу для отрисовки этого графа?)
Естественно!) Я её заранее сделал, визуально все проблемы очевидны становятся, я бы иначе даже не смог бы это разработать https://github.com/zerobias/effector/blob/develop/src/effector/__tests__/__snapshots__/index.test.js.snap#L455 Создается визуализация здесь https://github.com/zerobias/effector/blob/develop/src/effector/__tests__/index.test.js#L48 Внимание, не пугайся, в начале снапшота будет огромная НЁХ, граф — дальше ? * в визуализации это параллельные команды, 1. в визуализации — это последовательные команды Минусы: в данный момент сторы в графе обозначены как пара команд: апдейт, а затем фильтрация Визуализатор реализуется в файлах с названием show.js

Дмитрий
18.06.2018
14:57:21
Создается визуализация здесь https://github.com/zerobias/effector/blob/develop/src/effector/__tests__/index.test.js#L48

Arthur
18.06.2018
14:57:30
подскажите плз при вызове createStore и передачи туда редьюсера, который был создан через combineReducers, стейту приложения присваивается ключ - имя моего редьюсера. в доке написано, что это штатное поведение, но в их примерах этого имени почему-то нет. как мне его убрать ?

Google
Arthur
18.06.2018
14:57:50
ибо в итоге в mapStateToProps приходится ещё и имя редьюсера вписывать

const mapStateToProps = (state) => { return { friends: state.friendsReducer.friends.map( id => state.friendsReducer.friendsByIds[id]) }; }

Alex
18.06.2018
15:01:58
но проблема в концепции независимых сторов, чтобы отследить изменение в верхнем сторе (это возможно без изменения текущей реализации), мы должны знать о структуре верхнего стора, по крайней мере тех частей что нас интересуют, а это нарушает принцип модульности, наш модуль становится зависим потенциально от всей структуры стора (в зависимости от разницы глубин сторов)

Дмитрий
18.06.2018
15:02:28
Спойлер — это не проблема, а её решение

Иерархичность не нарушает модульности

Сергей
18.06.2018
15:03:35
Спойлер — это не проблема, а её решение
А как ты логику тестируешь?

Alex
18.06.2018
15:03:37
Иерархичность не нарушает модульности
тогда как ты соберёшь стор снизу вверх, если уже в нижнем тебе нужно знание о верхнем?

Сергей
18.06.2018
15:03:45
А как ты логику тестируешь?
Во время использования эффектора

Alex
18.06.2018
15:05:42
ладно знание, хрен с ним, допустим у нас описан интерфейс всего стора целиком, где и как нужно подключить слушатель интересного нам значения?

Дмитрий
18.06.2018
15:06:02
А как ты логику тестируешь?
Напрямую, при определенных начальных условиях и вызванных эвентах результаты должны вычисляться моментально

То есть нет редаксовского maybe-sync-maybe-async Асинхронные функции же (эффекты) логики не содержат

Санжар
18.06.2018
15:07:07
ребят, есть рестфул апишки с карточками товаров ? что то на подобии JSONPlaceholder

Maksim
18.06.2018
15:07:10
У меня есть 2 компонента, допустим, A и B, есть еще 3ий компонент - C, который состоит из A и B. Компоненты A и B протипизированы, нужно ли мне компонент C типизировать тоже так же как A и B? Ему же будут приходить в пропсы данные, которые будут передаваться в A и B. Например: A.propTypes = { className: PropTypes.string } B.propTypes = { className: PropTypes.string } Нужно ли делать в C так же? C.propTypes = { className: PropTypes.string } Т.е. в C будет приходить className и передаваться в A и B.

Дмитрий
18.06.2018
15:07:56
А как ты логику тестируешь?
Далее, если нужно мокнуть функцию — у тебя есть use, если нужно проверить реакцию на ее падение — эвент effect.fail

Сергей
18.06.2018
15:08:23
То есть нет редаксовского maybe-sync-maybe-async Асинхронные функции же (эффекты) логики не содержат
Все таки нужен опенсорс проект с эффектором. Чтобы увидеть как оно надо писать

Дмитрий
18.06.2018
15:08:30
Ну да, это точно

?
18.06.2018
15:09:00
Буду изучать . Снапшоты это круто
Object.assign может и массивы копировать, если первый аргументом передать массив

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