@react_js

Страница 604 из 5115
Ҫѐҏӗѫӑ
04.11.2016
16:40:13
там хреновый пример

мне надо идти пить

но надо код на слайд

Google
Ҫѐҏӗѫӑ
04.11.2016
16:40:35
наверняка у кого-то есть

а я пока другие слайды доделаю

придется самому писать(

from
04.11.2016
16:44:50
))

import React from 'react'; class Component extends React.Component { handleClick = () => { this.props.fetchData(); } render() { return ( <button onClick={this.handleClick}></button> ); } } export default Component;

n0z3r0
04.11.2016
16:45:57
Ребята я тут вообще в восторге от Jest!

Defiancefew
04.11.2016
16:46:13
от снэпшотов?

n0z3r0
04.11.2016
16:46:22
Тесты для React компонентов :) это просто обалденно!

Ҫѐҏӗѫӑ
04.11.2016
16:46:28
лол

n0z3r0
04.11.2016
16:46:39
+ для Store + Для WebAPI

вообще огонище!

Вы же тоже пишите тесты?

Dreamerinnoise
04.11.2016
16:46:51
Mind Blown

Google
n0z3r0
04.11.2016
16:46:56
А моки какие мммууууааахх!

Просто зашибенные :)

Ҫѐҏӗѫӑ
04.11.2016
16:49:22
ну как после любого экспрешна. спасибо, Ярослав

Vladimir
04.11.2016
16:50:54
YmpCNk0zSXc= я вот столкнулся с тем, что нельзя просто так импорт замокать в отдельном тесте, что не очень удобно

n0z3r0
04.11.2016
16:51:14
аааа ну есть такое :)

Но я пока не сталкнулся с такой надобностью :)

Vladimir
04.11.2016
16:51:46
ну и если тесты на DOM настоящий завязаны, тоже проблема

n0z3r0
04.11.2016
16:53:06
Ну не знаю :) вроде норма :) если через shalow или mount из enzyme

Grigory
04.11.2016
16:53:12
Парни а кто имел дело c redux-form, кидаю ошибку в хэндлер, а по факту в пропсах формы ошибки нет хотя экшн я вижу "redux-form/SET_SUBMIT_FAILED"

n0z3r0
04.11.2016
16:53:23
airbnb :) авторы :)

http://airbnb.io/enzyme/docs/api/shallow.html

Это по теме тестов на реальном ДОМе

Vladimir
04.11.2016
16:57:43
YmpCNk0zSXc= я немного не про то. что делать, если у меня в компоненте есть строчка node.parentNode.clientWidth?

или document.body.clientWidth? мой гугл кунгфу говорит, что clientWidth в jsdom не работает и не будет работать

может, чат опровергнет?

n0z3r0
04.11.2016
16:59:28
Ого :) Хм :) ну это да, сильно специфическая вещь

А может как то замокать можно?

Grigory
04.11.2016
16:59:41
Не будет)

n0z3r0
04.11.2016
16:59:46
clientWidth

Google
Vladimir
04.11.2016
17:00:26
Element.prototype.clientWidth? фигово, потому что тест, например, нужен для сравнения body => width и node => width

сразу все замокается)

Grigory
04.11.2016
17:01:19
PhantomJS такое может

Vladimir
04.11.2016
17:01:54
ну вот, а фантом запускается через карму

Dreamerinnoise
04.11.2016
17:01:59
подождите headless chrome

он вроде скоро скоро будет

Vladimir
04.11.2016
17:02:28
вроде год назад еще объявили, а воз и ныне там

Dreamerinnoise
04.11.2016
17:02:57
вроде год назад еще объявили, а воз и ныне там
https://bugs.chromium.org/p/chromium/issues/detail?id=546953#c54

Vladimir
04.11.2016
17:04:17
ну лады, но суть не поменяется ведь, все равно какая-нибудь карма нужна будет

Anton
04.11.2016
17:07:45
ребят, такая проблема

Имеется fetch(…).then(…).catch(err => dispatch(blabla(err)))

почему этот кэтч ловит абсолютно все ошибки, даже в другим компонентах

Как правильно ловить ошибки из запроса?

Vladimir
04.11.2016
17:16:10
все зависи от того ,что сделать хотите. catch поймает throw и reject из цепочки

Anton
04.11.2016
17:17:26
Ну, если допустим у меня в запросе 500 ошибка или 401, как мне их ловить и отдавать в нужный диспатч?

Vladimir
04.11.2016
17:18:40
401 -> reject -> catch -> обработка, насколько я понимаю

Anton
04.11.2016
17:18:59
т.е. catch внутри then делать?

Grigory
04.11.2016
17:19:00
catch ловит любую ошибку в стеке которая произошла с начала вызова

Vladimir
04.11.2016
17:19:40
почти то же, что try...catch, только для асинхронных функций

http://learn.javascript.ru/promise

Google
Anton
04.11.2016
17:20:36
спасибо, чет не додумался в доке глянуть

Grigory
04.11.2016
17:21:03
то есть например если диспатчится экшн о начале загрузки а при рендере вылетает ошибка то она улетит в catch промиса

Anton
04.11.2016
17:21:58
ага, теперь понял как правильно

Vladimir
04.11.2016
17:28:37
друзья, а вы react и react-dom в vendors.js какой-нибудь выносите?

Исмаил
04.11.2016
17:30:40
Через commons chunk

Dreamerinnoise
04.11.2016
17:31:00
а кто-то упарывается и через DllReferencePlugin

Vladimir
04.11.2016
17:31:37
угу, про dll видел пару статеек, спасибо

Друзья, а эта штука только для продакшна должна использоваться? https://www.npmjs.com/package/lodash-webpack-plugin

Leonid
04.11.2016
17:52:47
Друзья, а эта штука только для продакшна должна использоваться? https://www.npmjs.com/package/lodash-webpack-plugin
по хорошему да, но из-за нее может возникнуть много неожиданных багов в проде, так что лично я юзаю и в dev тоже, чтобы ошибки отлавливать на этапе разработки

Vladimir
04.11.2016
17:53:48
@leo_nik в babelrc достаточно будет "development": { "plugins": [ "transform-react-jsx-source", "lodash" ] }, "production": { "plugins": [ "lodash" ] } ?

Vladimir
04.11.2016
17:54:44
ага, но он в связке с бабелевским

точно, доку как раз к бабелевскому смотрел, перепутал)

Leonid
04.11.2016
17:55:21
бабеловский может и один юзаться

Vladimir
04.11.2016
17:56:27
ага, понял

Leonid
04.11.2016
17:56:29
приведу пример на что я напарывался, когда в dev не юзал этот плагин: без flattening если делал так _.flowRight(fn1, fn2, fn3), то в продакшн env падала ошибка, надо было передавать массив _.flowRight([fn1, fn2, fn3])

это не всегда легко отловить в коде

приходилось всегда еще и в продакшн энв тестировать приложение на предмет правильного вызова функций lodash-а

Vladimir
04.11.2016
17:59:08
действительно, сразу на ошибку нарвался. спасибо, а то бы так в прод и залил)

Ilya
04.11.2016
18:56:29
привет, умеет кто в SSR?

Google
Vladimir
04.11.2016
18:56:59
а что там сложного?

Ilya
04.11.2016
18:57:34
как вы боретесь с тем, что нода не умеет импорты и ничего не знает о вебпаковском resolve.root (если вы им пользуетесь)?

Evgeny
04.11.2016
18:58:01
NODE_PATH

Импорты — babel-node

Vladimir
04.11.2016
18:58:28
просто babel-loader

Evgeny
04.11.2016
18:58:45
NODE_ENV=production APP_ENV=production NODE_PATH=./src $(npm bin)/babel-node server.js

Vladimir
04.11.2016
18:59:05
babel-node лучше не гонять на проде

зачем? если можно гонять оттранспайленную версию?

Дмитрий
04.11.2016
18:59:32
ну вот, а фантом запускается через карму
Не обязательно, фантом можно по разному запускать, мне удобнее всего через horseman

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