@react_js

Страница 38 из 5115
Anton
22.04.2016
19:17:49
Есть в родительском компоненте метод update(obj). В obj приходит новое состояние, которое потом устанавливаем. А дочерний компонент принимает props (<Child update = { this.update.bind(this)} />). В Child создается событие  onClick={ () => update(newObj)}. Вопрос: зачем использовать bind для передачи функции? Кому не сложно, объясните

from
22.04.2016
19:21:26
oO гхм... а зачем вообще нужен .bind()? )

для того же и тут

Anton
22.04.2016
20:04:53
bind возвращает функцию обертку

Google
Alexander
22.04.2016
20:06:26
Тебя смущает, что при этом в функиции-обработчике всё равно не испльзуется контекст, или что?

Если не делать bind, то контекст переданной функции потеряется при вызове, а так он всегда связан

from
22.04.2016
20:08:27
И уж к слову делать это лучше не момент рендеринга

Alexander
22.04.2016
20:08:30
При этом для консистентности и “на всякий случай” так делают даже с функциями которые this не используют внутри

Anton
22.04.2016
20:11:09
В данному случае <Child update = { this.update.bind(this)} /> this в bind будет указывать на родительский компонент?

Alexander
22.04.2016
20:11:57
Да

trump ? trump ? hillary
22.04.2016
20:12:50
/angular_js

Renat
22.04.2016
20:13:07
/angular_js

from
22.04.2016
20:13:12
))

Anton
22.04.2016
20:16:24
/angular_js

/angular_js

/angular_js

/angular_js

Google
Anton
22.04.2016
20:16:33
/angular_js

)))

Dmitry
22.04.2016
20:16:42
так его!

раз вечер вопросов начали, может кто-нибудь подскажет) начал возиться с редаксом, сделал себе более менее абстрактные экшн и редьюсер для работы с саджестом в инпуте. Для 2х инпутов в сторе использую один и тот же редьюсер и, соответственно, оба реагирует на экшн и показывают саджест. Есть какой-нибудь бест практис как это обойти? Я пока нашел один метод, но он кажется костыльным и вероятно просто голова пока по другому устроена)

Vadim
22.04.2016
20:30:29
а зачем экшен делать абстрактным? есть 2 инпута, у каждого своя логика, но к примеру одинаковая структура данных, которую может обработать функция. Инпут эмитит экшен, который попадает в свой редьюсер и использует универсальную функцию, которая процессит данные.

Dmitry
22.04.2016
20:34:07
ну сейчас какой-то простой пример с инпутом, а потом появится логика посложнее у 2х инстансов блока на странице и придется копировать эти обертки, вызывающие универсальные функции, так?

Vadim
22.04.2016
20:36:00
Что такое обертка?)

Dmitry
22.04.2016
20:38:13
action creator, который дергает универсальные функции для экшенов

Alexey
22.04.2016
20:38:31
/JSlang

Vadim
22.04.2016
20:41:46
инстанс может вызывать экшен и передавать название своей модели, с которой будет работать редьюсер. тогда 1 экшен сможет обслужить много инстансов.

Alex
22.04.2016
20:45:48
/angular_js

Упс

Dmitry
22.04.2016
20:50:46
спасибо, гляну

Vitaliy
22.04.2016
22:03:31
/angular_js_nadoel

Roman
23.04.2016
00:17:57
Ну привет

[Anonymous]
23.04.2016
07:29:04
/angular_js

eto obman! :<

Gordey
23.04.2016
07:32:50
da :’(

Roman
23.04.2016
07:42:06
/stat@comstatbot

Google
Costa
23.04.2016
07:51:34
Всем привет

Подскажите, пожалуйста, делаю подобную штуку http://jsfiddle.net/kennis/JTvFZ/ Только нужно вывести более сложный хтмл, и ~10 000 записей, как правильно оптимизировать все это? Я так понимаю, нужно разбить данные на группы и всем невидимым в данный момент элементам сделать display none

С телефона фидл не работает, там фишка в скролле

Vladimir
23.04.2016
07:58:51
дисплей нон не стоит, ведь ты можешь просто не рисовать их. а высота элемента известна и фиксирована?

Costa
23.04.2016
08:06:57
Да, можно зафиксировать

А в како момент лучше перерисовывать?

Vladimir
23.04.2016
08:34:53
1) вешаешь на скролл контейнера эвент (на самом деле, лучше по таймауту проверять каждые 200-500мс). 2) по позиции скролла, зная высоту элемента, определяешь, какие элементы влезут в экран 3) прибавляешь по десятку сверху и снизу. 4) рисуешь необходимое количество элементов, верхнему ставишь марджин-топ, так, чтобы сохранить его позицию внутри скролла

Costa
23.04.2016
08:49:02
Те перерисовываешь элементы при каждом событии скролла? Или надо отслеживать какие-то точки определённые? Спасибо, примерно понял, буду пробовать!

Vladimir
23.04.2016
08:53:26
не, лучше все же по таймауту, а то утонешь в эвентах. давай уточню. 1) по таймауту считаешь в контейнере скролл оффсет, кладешь его в стейт контейнера. 2) в функции рендер контейнера определяшь минимальный и максимальный индексы элементов, которые видны на экране, с небольшим запасом 3) рисуешь только эти элементы, указав первому смещение относительно контейнера, равное его индексу, помноженному на высоту элемента

4) не забываешь снять таймаут на компонентдидмаунте

5) идешь и проламываешь голову человеку, который придумал на одном экране показывать 10000 элементов

Costa
23.04.2016
08:57:15
=) спасибо), я denounced использую

Vladimir
23.04.2016
08:57:22
6) чтобы не дергать рендер лишний раз, на самом деле можно индексы тоже по таймауту пересчитывать и падейтить стейт только если они изменились

Costa
23.04.2016
08:57:25
Debounced

Gordey
23.04.2016
08:57:29
может пейджинг или подгрузку по скроллу

Vladimir
23.04.2016
08:58:12
подгрузка по скроллу не особенно спасет, если кто-то во что бы то ни стало решит доскроллить до конца

дебаунс не спасает от того, что функция будет часто дергаться, лучше таймаут:)

то есть дебаунсед-функция - это тоже функция, с логикой

Admin
ERROR: S client not available

Vladimir
23.04.2016
09:00:57
не таймаут, а сетинтервал, конечно, что это я...

Google
Costa
23.04.2016
09:01:10
А...

Вот, кстати, спасибо

Как-то я этот момент упустил

ssha
23.04.2016
09:07:29
/JSlang

Vasiliy
23.04.2016
09:09:07
ребят, а существует какая-нибудь обертка на webpack? очень уж не очевидно все получается, особенно если делаешь монорепу и нужно мерджить конфиги

hlomzik
23.04.2016
09:10:18
не таймаут, а сетинтервал, конечно, что это я...
кокрастоке же таймаут лучше — управляемее и лучше работает со временем. ну тот таймаут, который сам себя ставит в конце

Vladimir
23.04.2016
09:14:41
ну не знаю, в задаче риалтаймовой точности не нужно, а код с таймаутом и код с интервалом будут оличаться только вот этим самоставом в конце

hlomzik
23.04.2016
09:16:56
если происходят затупы, то таймауты могут пачкой выполниться. т.е. если у нас таймаут на секунду, затуп на пять секунд, то после пятой коллбек сразу выполнится подряд пять раз

я же ничего не напутал?)

Vladimir
23.04.2016
09:24:31
http://javascript.info/tutorial/settimeout-setinterval#the-real-delay-of-setinterval

очень хороший поинт, но в данной задаче пофиг на самом деле

hlomzik
23.04.2016
09:26:14
да, я про это

Vladimir
23.04.2016
09:26:54
ну вот пачкой в сетинтервале не вызываются, один запрос втает в очередь и выполняется когда можеи

Aleksei
23.04.2016
09:27:38
facebookver это почти как semver только 0.13.x, 0.14.x, 15.0.x...

Vladimir
23.04.2016
10:04:13
рендерю на сервере в тестах реакт компонентв в jsdom, вижу изменение в html. Меняю состояние компонента, html не меняется. Что может быть?

нашел вот такую штуку, но не помогло http://stackoverflow.com/questions/26867535/calling-setstate-in-jsdom-based-tests-causing-cannot-render-markup-in-a-worker

метод render вызывается два раза, но в доме результат первого вызова

Чё делать? На ангуляр переходить не хочется.

Михаил
23.04.2016
10:22:55
/stat@comstatbot

Google
Aleksei
23.04.2016
10:49:42
/stat@comstatbot

Alexander
23.04.2016
11:15:04
/dispatch

Aleksei
23.04.2016
11:24:01
/dispatch

trump ? trump ? hillary
23.04.2016
11:27:58
/angular_js

Vasiliy
23.04.2016
11:30:23
/hooyach

Nikita
23.04.2016
11:31:11
/angular_js

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