@react_js

Страница 4872 из 5115
Valeriy
25.09.2018
00:38:08
1. значения фильта все равно нужно хранить в стейте

2. эти значения можно менять как из фильтра таблицы, так и из любых внешних источников

3. эти значения можно легко проносить в саму таблицу из стейта для фильтрации данных

4. эти значения из стейта можно отображать и редактировать в других внешних элементах

Google
Valeriy
25.09.2018
00:41:56
по поводу тригериться на изменения фильтра в других компонентах, так можно сохранять в редакс и подписаться на изменения фильтра в редаксе

m
25.09.2018
00:45:56
1. значения фильта все равно нужно хранить в стейте
всё верно, более того, таблица и так это делает, и позволяет поддерживать поля ввода в React-way, то есть с завязкой value на state. (что даёт бонусом корректную синхронизацию, если у нас два и более одиннаковых поля) https://react-table.js.org/#/story/custom-filtering 2, да, но при внешнем измменении требуется идентификация поля по айди, в то время как при кастомных фильтрах у нас есть колбек. 3, + 4, + Проблемы нет в том, чтобы их менять и редактировать снаружи. Это возможно. Но это не удобно и требует модификации (п.2), и лишает некоторых важных приемуществ, которыми я пользуюсь сейчас. К примеру, таблица сама создаёт за меня именно нужное количество фильтров. Определять отдельно вручную, какие фильтры мне нужны сейчас (а колонок у меня больше 25 , и фильтров примерно 10 видов) потребует дополнительного усложнения и большего потребления ресурсов, в то время как сейчас всё работает почти "из коробки". Триггериться тоже не проблема - стейт фильтрации доступен. Хочу иметь доступ к пропсам фильтра откуда-то снаружи. По ref я могу их получить, и размазать по новому внешнему компоненту, но мне кажется клонировать было бы правильнее.

Valeriy
25.09.2018
00:50:24
всё верно, более того, таблица и так это делает, и позволяет поддерживать поля ввода в React-way, то есть с завязкой value на state. (что даёт бонусом корректную синхронизацию, если у нас два и более одиннаковых поля) https://react-table.js.org/#/story/custom-filtering 2, да, но при внешнем измменении требуется идентификация поля по айди, в то время как при кастомных фильтрах у нас есть колбек. 3, + 4, + Проблемы нет в том, чтобы их менять и редактировать снаружи. Это возможно. Но это не удобно и требует модификации (п.2), и лишает некоторых важных приемуществ, которыми я пользуюсь сейчас. К примеру, таблица сама создаёт за меня именно нужное количество фильтров. Определять отдельно вручную, какие фильтры мне нужны сейчас (а колонок у меня больше 25 , и фильтров примерно 10 видов) потребует дополнительного усложнения и большего потребления ресурсов, в то время как сейчас всё работает почти "из коробки". Триггериться тоже не проблема - стейт фильтрации доступен. Хочу иметь доступ к пропсам фильтра откуда-то снаружи. По ref я могу их получить, и размазать по новому внешнему компоненту, но мне кажется клонировать было бы правильнее.
я по 2 пункту не совсем понял про кастомный фильтр и колбек

чего там не хватает?

m
25.09.2018
00:52:56
я по 2 пункту не совсем понял про кастомный фильтр и колбек
кастомный фильтр создаётся следующим способом (пример из доков): Filter: ({ filter, onChange }) => <select onChange={event => onChange(event.target.value)} value={filter ? filter.value : "all"} > <option value="all">Show All</option> ... </select> filter - это обьект, по умолчанию undefined, содержащий информацию о изменении поля фильтра (айдишник, новое значение, кажется что-то еще). Подобный обьект передаётся в filterMethod Вариант решения моей задачи - аккуратно иметь filter и onChange где-то еще (плиз, не в редаксе). По ссылке я их могу получить, но зачем ограничиваться только ими. Ещё важно иметь всегда актуальное количество и тип фильтров - точно такой же, как в шапке таблицы. То есть я ну очень не хочу определять, какие фильтры отображены, и согласно полученной информации создавать такие же фильтры снаружи. Сейчас есть идея как-то собирать создавшиеся ссылки и потом копировать по ним необходимое количество элементов вместе с их пропсами и т.д.

Valeriy
25.09.2018
01:03:23
кастомный фильтр создаётся следующим способом (пример из доков): Filter: ({ filter, onChange }) => <select onChange={event => onChange(event.target.value)} value={filter ? filter.value : "all"} > <option value="all">Show All</option> ... </select> filter - это обьект, по умолчанию undefined, содержащий информацию о изменении поля фильтра (айдишник, новое значение, кажется что-то еще). Подобный обьект передаётся в filterMethod Вариант решения моей задачи - аккуратно иметь filter и onChange где-то еще (плиз, не в редаксе). По ссылке я их могу получить, но зачем ограничиваться только ими. Ещё важно иметь всегда актуальное количество и тип фильтров - точно такой же, как в шапке таблицы. То есть я ну очень не хочу определять, какие фильтры отображены, и согласно полученной информации создавать такие же фильтры снаружи. Сейчас есть идея как-то собирать создавшиеся ссылки и потом копировать по ним необходимое количество элементов вместе с их пропсами и т.д.
columns для таблицы где формируется?

m
25.09.2018
01:04:12
columns для таблицы где формируется?
там же, где и таблица вызывается, как функция родительского компонента. тут у меня тоже слабое место, хотелось бы найти еще варианты.

Valeriy
25.09.2018
01:04:45
это я по поводу определения сколько там фильтров и названий полей

вся эта инфа есть вэтом массивчике же

m
25.09.2018
01:05:46
это я по поводу определения сколько там фильтров и названий полей
это будет обработка , и выяснение, мне этого не надо. мне надо тот фильтр, который уже есть, просто еще раз и в другом месте :)

Valeriy
25.09.2018
01:06:42
ну хз... завтра понадобится на странице 10 разных таблиц выводить и переключаться табами между их фильтрами :)))

и будет попа

m
25.09.2018
01:08:29
это я по поводу определения сколько там фильтров и названий полей
более того, у колонки есть аттрибут show, который если false, скрывает и колонку и фильтр автоматически. Вот еще бы мне попроверять на кучу условий необходимость создания фильтра для колонки, а потом его тип, а потом отдельный колбек для него, отдельный api - нет нет, увольте.

Google
Valeriy
25.09.2018
01:08:59
кроме того, если вдруг таблица размаунтится раньше твоего внешнего фильтра тоже могут быть вопросы

т.к. свойства filter и onChange переданные в компонент фильтра будут забиндены на табличный компонент

m
25.09.2018
01:10:10
кроме того, если вдруг таблица размаунтится раньше твоего внешнего фильтра тоже могут быть вопросы
верно. сейчас это работает нормально с порталами, и не unmount раньше чем надо.

Valeriy
25.09.2018
01:10:20
есть подозрение, что имеет место быть не совсем правильная композиция компонентов просто

отсюда и проблема на ровном месте

m
25.09.2018
01:11:31
отсюда и проблема на ровном месте
так проблемы то особо и нет, сейчас работает нормально, но с порталами. А от них я хочу избавиться.

Valeriy
25.09.2018
01:12:11
не хочешь через редакс прокидывать фильтры, сделай через context api новый

воткни провайдера над обеими компонентами

а в них консумеров и все

m
25.09.2018
01:12:42
не хочешь через редакс прокидывать фильтры, сделай через context api новый
я не вижу необходимости обмазывать редаксом то, что и так работает.

воткни провайдера над обеими компонентами
"над обеими компонентами" какими?

Valeriy
25.09.2018
01:13:17
ну так чтобы провайдер был выше и внешнего фильтра и выше таблицы по иерархии

в провайдере уже храни сам фильтр и методы его меняющие

m
25.09.2018
01:14:37
ну так чтобы провайдер был выше и внешнего фильтра и выше таблицы по иерархии
и передавать в него и колбек и обьект filter? так это ничего мне не даёт. Я могу прямо компонент закинуть туда и потом его в двух местах вернуть?

Valeriy
25.09.2018
01:15:05
можешь

можешь там фабрику даже сделать для создания таблицы и фильтра

и методы управления колонками и фильтрами, чтобы синкались они ровно

m
25.09.2018
01:16:47
и методы управления колонками и фильтрами, чтобы синкались они ровно
не хочу методы пока вытаскивать отдельно. Я их и по ссылке получаю. Есть какие-то примеры, как компонент целиком вынести и получать его инстансы по требованию?

Valeriy
25.09.2018
01:16:57
и все же сложно понять как фильтр от таблицы может оказаться в каком-то совсем далеком месте от самой таблицы

Google
Mark
25.09.2018
01:28:31
Привет Как заменить env var в файле, который импортируется в таску gulp? В самой таске переменные правильные, а вот файл, который я импортирую - класс, дата хендлер, мне нужно оттуда запустить пару методов, чтобы получить данные с сервера, но для дева - нужно запрос на локальный сервер, для stg - на stg, а для продакшена - на прод Кто нибудь сталкивался??

Mark
25.09.2018
01:35:28
Эт просто: 1) Я там не сижу 2) В чатике ноды меня просили пройти на фронт 3) Галп - фронт

И да, я бы галп не юзал, но я сейчас в офисе, это моя работа, а если работа требует - нужно сделать

Valeriy
25.09.2018
01:36:35
с каких пор task manager gulp стал фронтом ? ):))

Mark
25.09.2018
01:39:44
Его на сервер не крутят (насколько мне известно) И чувак, мне помощь нужна, а не философские обсуждения о галпе

Valeriy
25.09.2018
01:40:56
тут чатик по реакту, о галпе тут конечно слышали издалека многие, но давно уже сменили его либо на вебпак, либо еще на что-нибудь хипсторское

Mark
25.09.2018
01:41:41
Надо мне работу сменить

Хорошо, даже убрав галп, суть вопроса даже не столько в нем, а сколько в том, как менять evn var в импортируемом файле

Valeriy
25.09.2018
01:42:30
единственный нормальный кейс использования галпа, это когда один из его тасков запускает вебпак :))))

Mark
25.09.2018
01:43:02
Мне не нравится галп, но никто не станет сейчас переписывать проект только потому-что мне он не нравится

Меня нахуй скорее пошлют ?

Artyom
25.09.2018
04:20:41
GreenMan
25.09.2018
04:21:45
Привет) Как прикрутить валидацию на checkbox проверять checked true||false

Set
25.09.2018
05:00:41
привет! подскажите пожалуйста почему он ругается на Access-Control-Allow-Origin хотя я его указал. Ошибка: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8081' is therefore not allowed access. axios({ method: "POST", url: `${ROOT_URL}/auth`, headers: { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods' : 'POST', 'Content-Type': 'application/json;charset=UTF-8', 'App-Token': AppToken, }, data: { email: values.email, password: values.password }, })

shut up
25.09.2018
05:01:00
Я перечитал все первые ссылки про сессии и куки. Со вторыми более-менее все понятно, но с сессиями - совсем плохо. Как я понял, это просто файл с ID, в втором хранится пользовательская инфа? Эта инфа берётся из северной бд, верно? Но разве это целесообразно? Придётся создавать файлы для сессии.

shut up
25.09.2018
05:01:58
Пока писал, понял, что Сессии + куки == сеансовый протокол

Google
Admin
ERROR: S client not available

Artyom
25.09.2018
05:17:04
Set
25.09.2018
05:18:25
и?
поэтому думал нужно указать 'Access-Control-Allow-Origin': '*',

теперь буду знать

Max
25.09.2018
05:18:44
и?
не шаришь ты, вот что “и” ) хаха) доброе утро.

теперь буду знать
бэк то на чем? есть возможность заголовки поставить?

Artyom
25.09.2018
05:21:14
поэтому думал нужно указать 'Access-Control-Allow-Origin': '*',
в Access-Control-Allow-Origin перечисленные доверенные ресурсы. Этот заголовок указывает сервер с которого хостится статика собственно. * - означает доверять ВСЕМ, что является серьёзной потенциальной дырой в безопасности. Просто либо укажи там путь к api серверу, либо закрой сделай на хостинге проксю к апи и с клиента ходи на эту "локальную" проксю. (второй вариант предпочтительней)

Set
25.09.2018
05:21:19


Max
25.09.2018
05:22:13
значит надо попросить “программиста” другого сайта проставить заголовки

Artyom
25.09.2018
05:23:08
Set
25.09.2018
05:23:32
тогда не понимаю почему он ругается

Max
25.09.2018
05:23:37
нет же, заголовок на хостере указывается
эм.. ты когда код пишешь и размещаешь его у хостера, ты за него и отвечаешь же)

тогда не понимаю почему он ругается
в смысле? причина не изменилась же. У стороннего ресурса нет вас в разрешенном списке для запросов

Artyom
25.09.2018
05:25:26
эм.. ты когда код пишешь и размещаешь его у хостера, ты за него и отвечаешь же)
ну. я так предполагаю, что хостер свой, а апи чужое. если бы апи на хостере было - корс не ругался

Set
25.09.2018
05:27:55
так у меня до этого заходило! но сейчас нет!

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

Google
Artyom
25.09.2018
05:28:22
так у меня до этого заходило! но сейчас нет!
Расспиши (одним сообщением) детальнее что было, как стало и какое окружение

Опиши одним сообщением. Не нужно по всему чату разбрасывать куски информации

Set
25.09.2018
05:30:58
сначала я сделал так let axiosConfig = { headers: { 'Content-Type': 'application/json;charset=UTF-8', 'App-Token': AppToken, } }; let formData = { email: email, password: password }; const request = axios.post(`${ROOT_URL}/auth`,formData, axiosConfig); request .then(response => { // -Save the JWT token localStorage.setItem('token', response.data['auth_token']); все работало! после решил сделать его норм после чего выводится такая ошибка

Павел
25.09.2018
05:49:09
Парни,сталкивался кто, что ref положенный в store redux вешает redux devtools?

Artyom
25.09.2018
05:49:39
?‍♂️?‍♂️?‍♂️

Павел
25.09.2018
05:50:29
Через попсы очень далеко, общий предок далеко

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