@react_js

Страница 1124 из 5115
localvoid
25.03.2017
07:11:58
так у него же типа "совместимость", должно итак всё работать :)

Denis
25.03.2017
07:48:22
Вот что это за ? require.ensure(['./maps'], function (require) { TypeError: require.ensure is not a function

yadro
25.03.2017
07:51:06
Привет чат Как сделать правильно с т зрения архитектуры. Есть список фильтров, пользователь может их редактировать, при запуске они подгружаются из storage. Но есть системные фильтры, их нельзя изменять / удалять. Как их хранить? При первом запуске их просто добавить в список, и потом надеятся что не пропадут?

Google
Pavel
25.03.2017
08:03:25
3. Каков формат данных фильтров?

yadro
25.03.2017
08:04:26
1 redux, с сохранением в localStorage. 2 Ну нельзя исключать что их там не будет. 3 массив объектов

Pavel
25.03.2017
08:07:17
const systemFilterList = [ doc => doc.type != 1, doc => doc.type != 2, doc => doc.name != 'bla', ] const selectFiltered = (state, customFilterList) => { const filterList = [ ...customFilterList, ...systemFilterList ] // USE IT }

yadro
25.03.2017
08:08:48
хм, неплохо, спасибо)

однако я не знаю где мне брать customFilterList, у меня есть только стейт со всеми фильтрами

Pavel
25.03.2017
08:11:29
customFilterList - это пользовательские фильтры

Вы их передаете в mapStateToProps

Где и происходит фильтрация

yadro
25.03.2017
08:13:26
Где и происходит фильтрация
пойду читать про mapStateToProps

Pavel
25.03.2017
08:14:56
пойду читать про mapStateToProps
Это первый параметр, который принимает connect из react-redux и позволяет сделать map части дерева state на props компонента.

Pavel
25.03.2017
08:15:58
Вторым параметром является mapDispatchToProps, которые позволяет сделать map actionCreator-ов на props.

Так же есть упрощенная форма записи второго параметра в виде объекта, ключами которого являются названия props, а значениями нужные вам actionCreator, которые автоматически оборачиваются в dispatch.

Google
Pavel
25.03.2017
08:18:11
И вам остается только вызвать их внутри комопнента, например если у вас есть actionCreator "doSomething" и вы вызваете его в классическом виде store.dispatch(doSomething()), то при connect(null, { doSomething })(YourComponent) вы можете вызывать его this.props.doSomething().

yadro
25.03.2017
08:35:22
Это первый параметр, который принимает connect из react-redux и позволяет сделать map части дерева state на props компонента.
а если у меня несколько компонентов, которым нужен filterList, но им нужны и другие пропсы

каждому свои

Pavel
25.03.2017
08:36:28
Все зависит от того, где вы храните customFilterList в приложении. Если он приходит из какого-то верхнеуровнего компонента, передайте его оттуда.

connect дополняет props компонента, а не заменяет их

yadro
25.03.2017
08:38:54
connect дополняет props компонента, а не заменяет их
а я коненчку разные пропсы connect(state => ({filterList: state.filterList, something1: state.something1})) connect(state => ({filterList: state.filterList, something2: state.something2}))

customFilterList хранится в редаксе

Ruslan
25.03.2017
08:39:35
connect один в компоненте

yadro
25.03.2017
08:41:19
connect один в компоненте
это пример для дух разных компонентов

Ruslan
25.03.2017
08:41:35
Это HOC, который добавляет в props переданные actions и данные из стор(oв)

andretshurotshka?❄️кде
25.03.2017
08:41:42
yadro
25.03.2017
08:41:56
из state

andretshurotshka?❄️кде
25.03.2017
08:42:39
и что не так тогда?)

Pavel
25.03.2017
08:43:32
И если вы храните customFilterList в state - то вам не нужно его передавать в виде props в компонет.

Вы должны вызвать селектор с нужным списком пользовательских фильтров.

yadro
25.03.2017
08:44:44
я переписал так, что filterList не просто берется из стейт, а модифицируется. Те я передаю filterMapStateToProps, который возвращается {filter}, но мне нужно {filter, something1} и {filter, something2}

может в гист написать полный пример?

Pavel
25.03.2017
08:45:26
Именно

yadro
25.03.2017
08:45:53
Именно
те написать?

Google
Pavel
25.03.2017
08:46:05
Именно = Да

yadro
25.03.2017
08:50:12
https://gist.github.com/Yadro/e4e74cd04df316195ddc19dd9909eaae

Pavel
25.03.2017
08:51:22
Вы скопировали, то что вы писали до этого - нужен боевой пример и что вы хотите добиться.

Не понимаю от какого дублирования нужно избавиться, если вам нужны в компоненте определенные части state, то за вас никто это придумать не может.

Фильтер не нужно передавать в компонет.

Фильтрацию, как я писал ранее нужно делать в mapStateToProps.

И системные фильтры переместить в selector-ы.

yadro
25.03.2017
08:56:05
Фильтрацию, как я писал ранее нужно делать в mapStateToProps.
дак я и показал mapStateToProps, по моему мнению) filter: [ ...systemFilter, ...state.filter ] хочу чтобы в одном месте

Pavel
25.03.2017
08:56:35
Повторяю в третий раз - вы это делаете в selector-е.

const systemFilterList = [ doc => doc.type != 1, doc => doc.type != 2, doc => doc.name != 'bla', ] const selectFiltered = (state, customFilterList) => { const filterList = [ ...customFilterList, ...systemFilterList ] // USE IT }

yadro
25.03.2017
08:57:34
значит мне нужно почитать что есть селекторы

Pavel
25.03.2017
08:57:48
А в mapStateToProps: const mapStateToProps = state => ({ filteredData: selectFiltered(state, state.customFilterList) })

yadro
25.03.2017
08:58:53
в принципе логично

Ches
25.03.2017
09:37:35
можете подсказать как убрать эту ошибку?

XMLHttpRequest cannot load http://localhost:3001/socket.io/?EIO=3&transport=polling&t=Li4qipF. The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. Origin 'http://localhost:3000' is therefore not allowed access. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.

пытаюсь сделать чат с клиента на реакте на сервер на ноду

с 3000 локалхоста на 3001 запросы

на ноде вроде все разрешено

Karl
25.03.2017
09:47:41
Включи корс на ноде

Ches
25.03.2017
09:48:29
Google
Ches
25.03.2017
09:48:55
я думаю возможно это react-create-app что то меняет в запросе

нода самая простая сейчас, на 10 строчек

Ivan
25.03.2017
09:49:20
как правильно передавать props в компонент в React Router. <Route path="/" component="вот в этот компонент"?>

Ches
25.03.2017
09:50:39
нода запросы принимает, выводит их в консоль лог, но потом на клиенте что то блочится



Дмитрий
25.03.2017
09:53:05
А что за возня вышла?
Асинхронные роуты нельзя просто так перезагрузить при изменениях, плюс в react-router =< 3 wontfix issue, спамит в консоль warning`ами, все советуют патчить console.warn ? Выкинул реакт-роутер

Ches
25.03.2017
09:58:59
исправил мою ошибку добавив "proxy": "http://localhost:3001", в package.json на клиенте, но так и не понял как это все работает

Алексей
25.03.2017
09:59:01
нода запросы принимает, выводит их в консоль лог, но потом на клиенте что то блочится
ну так он же тебе пишет что ты cors запрос отправляешь. видно же что у тебя сервак и js приложение на разных портах, конечно он тебе будет кидать такой ворнинг. у тебя два варианта, либо отдавать статику нодовским серваком (ну конечно можно поставить проксю, типа nginx и им отдавать и проксировать запросы еще на нодовскую прилагу), либо отдавать уже серваком хэдер Access-Allow-Origin

Admin
ERROR: S client not available

Ches
25.03.2017
10:01:38
const cors = require('cors'); app.use(cors());

или app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); next(); });

или один из этих

// io.set('origins', '*:*'); // io.set( 'origins', '*domain.com*:*' ); // io.set('origins', 'http://localhost:3000');

Pavel
25.03.2017
11:02:08
snipet - propTypes.isDefined

Возможность prop быть null и при этом isRequired const isDefined = (props, propName, componentName) => typeof props[propName] === 'undefined' && new Error('${ propName } undefined')

Denis
25.03.2017
11:03:54
Там же уже 4й, теперь нормальный :)
Там разве есть асинк роуты ? Вроде только через свой HOC

Pavel
25.03.2017
11:20:00
https://github.com/jtmthf/react-router-match-async

Denis
25.03.2017
11:23:16
Реализовать это 10-20 строчек

Google
Denis
25.03.2017
11:23:25
Тут вопрос скорее почему это не в кор

Karl
25.03.2017
12:19:19
Гайз, а поясните чем тайпскрипт так плох? (Чето его просто все тут хейтят, приколы всякие про него)

Denis
25.03.2017
12:21:53
Вот тут не хейтят https://t.me/typescript_ru

Filip
25.03.2017
12:24:01
Гайз, а поясните чем тайпскрипт так плох? (Чето его просто все тут хейтят, приколы всякие про него)
Мне влом прописывать и описывать типы, и я пишу код таким образом, что очень редко у меня куда-то приходит аргумент неправильного типа Плюс ES6 - это стандарт

Pavel
25.03.2017
12:29:09
Гайз, а поясните чем тайпскрипт так плох? (Чето его просто все тут хейтят, приколы всякие про него)
Typescript - не плох. Он не годится для начальных стадий развития проекта или если вы собираетесь много рефакторить продукт. В остальном только плюсы.

Vladimir
25.03.2017
12:29:41
Pavel
25.03.2017
12:31:20
Это мнение, собственное.

Vladimir
25.03.2017
12:31:29
Он не годится ни для каких стадий проекта

Ҫѐҏӗѫӑ
25.03.2017
12:31:32
рефакторить без тс проще да?

Vladimir
25.03.2017
12:31:44
Да

Ҫѐҏӗѫӑ
25.03.2017
12:32:27
и вкручивать надо на поздних стадиях, и не рефакторить. клааасс

какая полезная штука (интересно чем? и зачем тогда вообще это делать?)

из сообщения Павла выходит, что ТС надо вкручивать когда проект сдох

збс занятие

Vladimir
25.03.2017
12:34:29
ТС не надо вкручивать никогда

Ҫѐҏӗѫӑ
25.03.2017
12:34:40
да да

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