
Pavel
20.03.2017
06:27:40
Где-то была ошибка. Перепиши иммутабельно и проверим.

Danil
20.03.2017
06:28:38
А вот я в провайдер передаю стор, получается он должен всем детям быть доступен как props.store?

Pavel
20.03.2017
06:30:34
Filter.jsx, handleChange:
handleChange = ({ target: { value }}) => {
this.setState({ value })
this.props.handleFilter(filterQuery)
}

Google

Pavel
20.03.2017
06:31:29
Напрямую не рекомендую к нему обращаться.

Danil
20.03.2017
06:32:20
Я вообще не смог к нему обратиться без коннекта, так и должно быть?
Я для того чтобы к нему обращаться создал AppContainer
Мне кажется это неправильным

Pavel
20.03.2017
06:33:06
AppContainer не нужен
Он внутри this.context.store
Как props.store он не доступен

Danil
20.03.2017
06:34:13
А почему у меня стор доступен как 2 редьюсера?

Pavel
20.03.2017
06:35:05
Не понимаю, что значит как 2 редьюсера

Danil
20.03.2017
06:35:10
В imagegrid можно видеть что я стэйт через редьюсер получаю
store.filterReducer.map - это в imagegrid.jsx

Pavel
20.03.2017
06:37:38
Не называй store = state - это путает самого тебя
const mapStateToProps = state => ({
store: state,
});

Google

Pavel
20.03.2017
06:38:01
Ты сам себя запутал неверным наименованием переменных
Когда ты создаешь корневой reducer ты используешь combineReducers
Это помощник, который на основании ключей переданных и соответствующих им редьюсерам создает в state соответствующие ключам разделы.
Потому используя например следующий код:
const rootReducer = combineReducers({
filter: filterReducer,
size: sizeReducer,
});
Ты получишь filter и size в state

Danil
20.03.2017
06:40:57
Ну теперь понятно почему так, у меня еще возникла проблема с preloaded state в createStore я в него отправлял images
Но он все равно не был доступен
Я могу как-то получить в дочерних компонентах доступ к preloaded state

Pavel
20.03.2017
06:42:15
У тебя корневое состояние выглядит, как { filterReducer: [], sizeReducer: '123132px' }
Я в корне не согласен с наименованием и методикой работы
filterReducer - не должно быть
Тебе не нужен доступ к preloadedState
Ты несколько не понимаешь логику работы redux
У тебя должен быть единственный reducer - image
Который хранит набор картинок
При mapStateToProps
Ты можешь делать фильтрацию

your-mirror
20.03.2017
06:44:11
подскажите, redux использует реактовский context?

Pavel
20.03.2017
06:44:21
Да
Точнее не redux

Google

Pavel
20.03.2017
06:44:33
react-redux
redux ничего не знает про react
В react-redux есть Provider, который инкапсулирует store в context
И уже используя connect вы можете сделать map state и actionCreator на props

Danil
20.03.2017
06:47:45
Ну получается в image reducer я импортирую images и через mapStateToProps и connect передам их в нужный мне компонент?

your-mirror
20.03.2017
06:50:21
Да
Тогда не совсем понимаю почему используют библиотеку, которая зависит от контекста, который находится под статусом deprecated?
Т.е. есть вероятность, что контекста не будет в следующих версиях

Pavel
20.03.2017
06:51:28
Так же скажу вам больше, сейчас идет полным ходом разработка fiber для перехода на stateless компоненты

your-mirror
20.03.2017
06:52:38

Pavel
20.03.2017
06:52:48
И будет рефакторинг всего react мира
Самая главная причина, что это удобно и решает практические задачи просто, какие именно - можно поговорить подробнее.
Но у @acemarke написано больше

your-mirror
20.03.2017
06:53:58

Paruyr
20.03.2017
06:54:07
кстати, какой смысл в mapDispatchToProps?

Pavel
20.03.2017
06:54:42
mapDispatchToProps обертывает ваши actionCreator в dispatch и делает map в props.

Ruslan
20.03.2017
06:54:55

your-mirror
20.03.2017
06:55:48

Pavel
20.03.2017
06:56:04
Имея например actionCreators: login, logout, signup и делая так:
connect(null, { login, logout, signup })(YourComponent)
Вы можете обращаться к ним напрямую this.props.login
Это упрощенная форма connect
Где вторым аргументом передается объект

Google

Pavel
20.03.2017
06:57:12
Как же тяжело в telegram после Discord. Хочется нормального форматирования js.

Danil
20.03.2017
07:09:39


Pavel
20.03.2017
07:13:53
В данной ситуации вам даже редьюсеры не нужны вы только храните информацию о картинках и никак ей не управляете
@DanDanDan Фильтрация делается с помощью механизма selector в mapStateToProps
@Dandandandan SliderContainer.js
Используйте упрощенную форму mapDispatchToProps как объект:
import { connect } from 'react-redux';
import { changeSize } from '../actions';
import Slider from '../components/Slider';
export default connect(null, { changeSize })(Slider);
@Dandandandan FilterContainer.js полность переделывется с использованием selectImageListByName
@Dandandandan Так же можете использовать для indexOf побитовый оператор ~
~i.name.toLowerCase().indexOf(action.filterQuery.toLowerCase())

Admin
ERROR: S client not available

Sheridan
20.03.2017
07:31:45
Народ, советую посмотреть в заголовки озона, который ozon.ru :))))
"name": "X-Recruiting",
"value": "Like web development? Come write ours: http://job.ozon.ru/"
))))
рекрутеры-затейники мля )))

Ostap
20.03.2017
07:36:11
перейдите https://job.ozon.ru и кликните "Senior IOS разработчик"
тож весело

Ruslan
20.03.2017
07:52:47
У них там Bitrix, без Senior Web Architect не обойтись

Kreizo
20.03.2017
08:22:55
подскажите, а пагинацию можно сделать без стороны сервера просто ответ порезать на части ?
если да, то дайте либу для реакта

Mike
20.03.2017
08:23:22
Нет, религия js запрещает резать ответ

Ruslan
20.03.2017
08:26:49

Google

Mike
20.03.2017
08:28:15
Должен быть react-array-slicer-for-pagination-client-only

Dmitry
20.03.2017
08:30:12
Лучше isomorphic-react-array-slicer-for-pagination

Ruslan
20.03.2017
08:37:29
https://github.com/PositronicBrain/reactSumRedux

wumin
20.03.2017
08:40:47
Кто использует create-react-app, есть возможность без eject'a прикрутить css-modules и кастомные postcss плагины?

Damir
20.03.2017
09:01:18
Кто-нибудь сталкивался с такими багами eslint? http://take.ms/5ss1f
Отступы в порядке, в пятницу ошибок не было, сегодня проект не запускается, выдает ошибку jsx-indent
Везде используется один стиль отступов, там даже видно что выше такой же стиль ошибку не вызывает, а ниже почему-то не определяет

Artem
20.03.2017
09:26:09
Ребят, кто нибудь ставил https://stripe.com платежную систему?
Подскажите пожалуйста есть ли проверенные способы внедрения этого дела на React клиенте?
нашел я вот эту статейку, но она не внедряет доверия:
https://davidwalsh.name/step-step-guide-stripe-payments-react
может я ошибаюсь и это действительно хорошая статья...

Alexander
20.03.2017
09:33:47
https://tproger.ru/translations/9-useful-tips-react/

Yakov
20.03.2017
10:08:14
Посоны, чем прокачать css (пост процесморы или препроц) что бы флексбокс максимально поддерживался на олдскульных браузерах? Какой сейчас феншуйный способ есть для этого?

Mikhail
20.03.2017
10:08:46
уже гриды вот-вот повсюду будут - а ты fallback на flexbox

Yakov
20.03.2017
10:09:09
Ну а все же

Artem
20.03.2017
10:09:23

Mikhail
20.03.2017
10:10:01

Artem
20.03.2017
10:10:16
??

Dmitry
20.03.2017
10:12:19

Artem
20.03.2017
10:15:31

Dream
20.03.2017
10:15:32