
Dmitry
10.12.2017
20:15:31
Добрый вечер.
Друзья, помогите плз целый день мучають, можете ссылкой кинуть.
Проблема:
Необходимо в приложении, лучше в одном месте ловить все эвенты и на каждый эвент стрелять action для различных компонент.
что я делаю.
я создаю компоненту EventListener, передаю в нее через props все action от всех компонент.
EventListener получился примерно таким
class EventsSSE extends React.Component {
constructor(props) {
super(props);
}
componentDidMount() {
this.source = new EventSource('/sse_subscribe');
const { logsActions } = this.props
this.source.addEventListener('addLog', function(e) {
logsActions.addLog(JSON.parse(e.data))
});
}
componentWillUnmount() {
console.log('componentWillUnmount EventsSSE')
this.source.close();
}
}
Но тут начинаются чудеса, сам action - addLog отрабатывает, но вот reducer не вызывается...
Подскажите куда копать, что делать.
Может я архитектурно не верно подошел к вопросу?


Nameless
10.12.2017
20:21:42
this.props.Store.myPage.avatar.SubscribeForPictureUpdate(this.setState({Avatar:this.props.Store.myPage.avatar}));
...
export default connect(
(state, ownProps) => ({
Store: state,
ownProps
}),
subscribe => ({
SubscribeForPictureUpdate:(review)=>{
subscribe(review);
}})
)(MyMenu);
Нужно при изменении в сторе поля avatar выполнить this.setState({Avatar:this.props.Store.myPage.avatar} или какую либо функцию
Ясное дело, что не работает, как реализовать подобную логику

Stepan
10.12.2017
20:27:52

Combot
10.12.2017
20:28:19
combot.org/chat/-1001032883247

Google

Nameless
10.12.2017
20:28:45
Стор я объявил раньше

Stepan
10.12.2017
20:29:04
Зачем весь стор прокидывать?
Прокинь только то, что нужно, тебе для того дали селекторы

Andrew
10.12.2017
20:33:10
Чет орнул ?
Может сразу window.store.getState()

Max
10.12.2017
20:44:26
шутники ебать

Cenator
10.12.2017
20:48:06

Stepan
10.12.2017
20:48:56
mapStateToProps
Это функция-селектор
Ну, я так думал

Google

Stepan
10.12.2017
20:49:24
Поправьте, если не так

Cenator
10.12.2017
20:49:44
мне кажется что он не чекает апдейты

Stepan
10.12.2017
20:50:01
Я не смотрел на проблему, просто приебался

Cenator
10.12.2017
20:50:29
аа, значит нужен еще reselect
почему
мемоизированные
селекторы перестают
работать когда есть
несколько инстансов
использующих их
компонентов?

kana
10.12.2017
21:13:04
да, все так
mapStateToProps
Это функция-селектор
Ну, я так думал
Поправьте, если не так

Дмитрий
10.12.2017
21:27:39

Cenator
10.12.2017
21:42:16
То есть при апдейте стейта он новую ссылку даст

Stepan
10.12.2017
21:44:40
Тогда бы реселект был бы не нужен

Дмитрий
10.12.2017
21:45:18
Да и вообще предоставляет способ самому определять как это проверять, емнип

Dmitrii
10.12.2017
21:48:50
не пробовали выкинуть Link из R4 и при клике (где должен быть линк) диспатчить экшен например NAVIGATE_TO_DASHBOARD, на который в thunk/saga/etc… уже грузить данные, делать еще что либо, любую логику, ну и сам history.push соответственно. В итоге получается больше контроля за роутами + didMound будет по свободнее от логики

Дмитрий
10.12.2017
21:49:27

Dmitrii
10.12.2017
21:49:48
разве там не на оборот?
Link меняет роуту, а стейт просто слушает измненеия и синкается, но контроля над самим пушем все равно нет. Я имею ввиду push который идет от link, а не push из экшена

Google

Andrew
10.12.2017
21:55:55
И делать что тебе нужно, а потом менять роут

Dmitrii
10.12.2017
21:57:03
на линк повесить диспатч, что это значит?
кароче, основная идея, не юзать link, как он есть, а вседа диспатчить кастомные экшены, после которых уже диспатчить реальный push

Andrew
10.12.2017
21:58:00
По клику на линк диспатчить экшон

Dmitrii
10.12.2017
21:59:27
ну ясен хрен, я могу и по клику на <a> это делать

Дмитрий
10.12.2017
22:01:30
разве там не на оборот?
Там вообще линка нет)) Просто тебе предоставляются экшн-креаторы push, replace и остальные, тебе остается сделать компонент который бы их диспатчил так, как тебе требуется

Dmitrii
10.12.2017
22:02:18
разве react-router-redux не подразумевает что установлен и react-router-dom с линком?

Дмитрий
10.12.2017
22:02:56
Тебя никто не заставляет им пользоваться)
Емнип там *-dom почти не используется
const toDashboard = () => push('/dashboard') чего-нибудь типа такого

Dmitrii
10.12.2017
22:03:11
блин точно

Dmitry
11.12.2017
04:56:43
Здравствуйте. Недавно начал изучать реакт. Подскажите, как стилизовать один и тот же компонент в разных местах по разному с применнием css modules?

Anton
11.12.2017
05:15:01
Если css modules то лучше читай про BEM?

Dmitry
11.12.2017
05:18:24
Готов рассмотреть другие варианты. :) Хочу от бэма отказаться, наоборот.

Andrey
11.12.2017
05:18:31

Anton
11.12.2017
05:19:53
“один и тотже компонент”, “по разному"
те класс и модификатор

Andrey
11.12.2017
05:21:19

Google

Admin
ERROR: S client not available

Andrey
11.12.2017
05:21:38
Передаёшь стиль, который тебе нужен и всё.

Anton
11.12.2017
05:22:10
должны существовать какие-то правила

Andrey
11.12.2017
05:22:27
Правилах именования классов? Да пофиг. Как хочешь, так и именуй.

Artyom
11.12.2017
05:24:07
лол
Действительно, кому нужны понятные стандарты...

Andrey
11.12.2017
05:25:58

Artyom
11.12.2017
05:26:18
Я про именования классов
А точнее больше про комментарий "как хочешь"

Andrey
11.12.2017
05:26:44
Упарываться в названиях не надо, но говорить, что есть стандарт...

Artyom
11.12.2017
05:27:13
Сова говорил норм про переменные, от общего к частному. Вот норм тема, например

Anton
11.12.2017
05:29:21
Вы упоролись что ли
Вопрос простой, а ответы хз какие
Либо прокидывай класс, либо пропс, отвечающий за выбор модификатора, либо ищи другое решение (оно есть)

Dmitry
11.12.2017
05:34:02

Pauline
11.12.2017
05:34:50
?

Alexandr
11.12.2017
07:31:09
есть чатик по ризону?

Google

ed
11.12.2017
07:31:25
народ кто на holyjs?

Oleg ?
11.12.2017
07:32:04
А когда?

ed
11.12.2017
07:32:13
сегодня) вчера и сегодня

kana
11.12.2017
07:32:18
а разве он уже не прошел?

ed
11.12.2017
07:32:40
н интересно может кто-то тут находится как раз)

Oleg ?
11.12.2017
07:33:18
Я из года в год разачировываюсь в этих конфах
В твиттере выходит все новое еще за месяц до любой конфы
Ну и на гитхабе офк
Я не про холи, я в целом про любую конфу