@react_js

Страница 3018 из 5115
Sergey
26.01.2018
14:33:07
Есть кто работал c react-stripe-elements ? https://github.com/stripe/react-stripe-elements

Usman
26.01.2018
14:44:08
Ребята линтер ругается. Line 9: Unexpected block statement surrounding arrow body arrow-body-style Как избавиться export default function getNews() { return new Promise((resolve, reject) => { fetch('/sport', { method: 'GET', credentials: 'same-origin', headers: { 'Content-Type': 'application/json' } }).then((res) => { return res.json(res); }).then((json) => { console.log(json); resolve(json); }).catch((err) => { reject(err); }); }); }

Google
Rafkat
26.01.2018
14:45:36
Всем привет,

Почему somefunc.bind(this) плохая практика?

Alexander
26.01.2018
14:46:21
Я так делаю, вроде не умер

Stepan
26.01.2018
14:46:35
Cenator
26.01.2018
14:46:51
Почему somefunc.bind(this) плохая практика?
потому что есть стрелки

Rafkat
26.01.2018
14:47:09
кто сказал?
Фидбек после тестового

Vladimir
26.01.2018
14:47:24
Лол

Пг
26.01.2018
14:47:36
Какой самый нормальный способ иньекции стилей из scss? style-loader почему-то пихает в сборку js-кода на 8 кб. (минифицированного кода) Ручная иньекция в код модуля это немного стремно Остается только portal прокидывать? Но тогда он будет анмаунтится при смене страницы, а желательно чтобы стили оставались в хедере

Anton
26.01.2018
14:47:42
Почему somefunc.bind(this) плохая практика?
Потому что создаёшь отдельную функцию для каждого инстанса, наверное

Vladimir
26.01.2018
14:47:42
Это нормальная практика

Alexander
26.01.2018
14:47:44
Иди им и скажи, что в чате написали, что это нормально.

Vladimir
26.01.2018
14:48:00
Потому что создаёшь отдельную функцию для каждого инстанса, наверное
Если ты один раз в конструкторе делаешь - это ок

А вот в рендере стрелки да, там они каждый раз создаются

Google
Timofey
26.01.2018
14:48:46


Stepan
26.01.2018
14:49:08
А вот в рендере стрелки да, там они каждый раз создаются
их не обязательно в рендере создавать

Rafkat
26.01.2018
14:49:08
кто сказал?
https://codesandbox.io/s/lywnjx1vqm

В комментариях фидбек

Vladimir
26.01.2018
14:49:20
Есть плагин https://github.com/chenglou/react-treeview/blob/master/src/react-treeview.jsx , который представляет собой типичный рекурсивный TreeView элемент. Пояснение чтобы вникнуть: состоянием можно управлять через два пропа: - defaultCollapsed - флаг при маунтинге элемента - collapsed - флаг, который заменяет внутренний стейт элемента В доках эти способы названы, "controlled" и "uncontrolled". В чём собственно проблема: понадобилось добавить фильтрацию по этому дереву. Поэтому добавляется логика: при нахождении элемента нужно развернуть всех его родителей, но тогда при сбросе фильтра вся эта срань останется развёрнутой. Придумал решение: componentWillReceiveProps(nextProps) { const { forcedCollapsed } = this.props const nextForcedCollapsed = nextProps.forcedCollapsed if (forcedCollapsed === undefined && nextForcedCollapsed !== undefined) { this.setState({ collapsed: this.forcedCollapsed, collapsedBeforeForced: this.state.collapsed, }) else if (forcedCollapsed !== undefined && nextForcedCollapsed === undefined) { this.setState({ collapsed: this.state.collapsedBeforeForced, }) } } Является ли это потерей чистоты компонента, ведь наше состояние переопределяется на основе предыдущего? Говнокод чи не?

Vladimir
26.01.2018
14:49:30
их не обязательно в рендере создавать
А где я сказал, что их надо в рендера создавать?

Vladimir
26.01.2018
14:50:12
ПС более элегантные способы приветствуются

Vladimir
26.01.2018
14:51:06
Что то какая-то хуйня в твоём коде

Stepan
26.01.2018
14:52:27
В комментариях фидбек
тут говориться что делать bind в рендере это плохо, а не делать bind вобще

тут говориться что делать bind в рендере это плохо, а не делать bind вобще
и вобще зачем ты делаешь bind в stateless компоненте?

Rafkat
26.01.2018
14:53:58
тут говориться что делать bind в рендере это плохо, а не делать bind вобще
Ок, это понятно, это чтобы вызвать верхнюю функцию м алертом

По сути не важно

Имею ввиду, что это мог быть любой компонент, в котором был бы автокомплит

Rafkat
26.01.2018
14:55:07
Походу я понял, что надо писать комменты в тестовых заданиях

Потому что у проверяющего может не быть времени или желания копаться, что я имел ввиду в коде

Что то какая-то хуйня в твоём коде
Сказали сделай простой автокомплит, я сделал проще некуда

Stepan
26.01.2018
14:57:30
Походу я понял, что надо писать комменты в тестовых заданиях
тут коменты не помогут, ты сначало разберись зачем bind нужен

Vladimir
26.01.2018
14:57:46
const { value } = e.target; let newState = this.state; if (value.length > 0) { newState = { ...newState, show: true}; // нет необходимости копироватить предыдущее состояние } else { newState = { ...newState, show: false }; }; newState = { // нет необходимости копироватить предыдущее состояние ...newState, items: this.getFiltered(value) }; this.setState(newState);

Google
Vladimir
26.01.2018
14:57:52
вот зачем это?

Artyom
26.01.2018
14:58:23
http://s.csssr.ru/U8SMMLH99/20180126175346.png Скрин с дев конфига. Как сделать, что бы линтер ошибки подсвечивал, но сборку не ломал? (только для дева надо)

Vladimir
26.01.2018
14:58:46
почему нельзя сделать: this.setState(()=>({ show: value.length > 0, items: this.getFiltered(value) });

Ilya
26.01.2018
14:59:11
Кто какие реализации использует Unhandled Rejection?

Vladimir
26.01.2018
14:59:26
proceedAutoComplete(text) { //alert(text); this.textInput.value = text; // это не react-way this.setState({ show: false }); this.props.onAutocomplete(text); } зачем this.textInput.value? если можно в стейте хранить значение?

Nikolay
26.01.2018
14:59:46
А во

Vladimir
26.01.2018
15:00:09
function onAutoCompleteHandle(val) { alert(val); } // нет единого способа именования обработчиков. коллбэки лучше называть handleSomeShit(eventData)

Ilya
26.01.2018
15:00:10
npm unhandled-rejection?

Диванный
26.01.2018
15:00:16
кто нибудь делал на материале компоненту тегов?

Vladimir
26.01.2018
15:00:32
Зачем в cdm устанавливать состояние? Для этого есть конструктор

if (e.key === 'Enter' && this.getFiltered(e.target.value).length === 1) { this.proceedAutoComplete(this.getFiltered(e.target.value)); // стоило закэшировать результат this.getFiltered } Вот это вообще не оптимально. Ты делаешь дважды вызов getFiltered

зачем все время превентить события? Если нет необходимости - не нужно

Пг
26.01.2018
15:02:54
зачем все время превентить события? Если нет необходимости - не нужно
если нет необходимости, то нужно делать пассивный эвент

Vladimir
26.01.2018
15:03:31
key={i} Использовать индексы как ключи - крайняя мера. В автокомплите у тебя обычно нет двух элементов с одним и тем же value, стоит использовать его. Иначе вся суть ключей теряется

короче, ты объективно завалил таск

наименование showSuggest - такое, это больше на бул выглядит, чем на определение стилей

Vladimir
26.01.2018
15:04:47
лол

реф юзают для доступа к элементу, никоим образом с автокомплитом это не связано

Google
Vladimir
26.01.2018
15:06:01
а надо читать документацию

Rafkat
26.01.2018
15:06:04
короче, ты объективно завалил таск
ну я это уже понял, спасибо за фидбек)

Vladimir
26.01.2018
15:06:36
When you don’t have stable IDs for rendered items, you may use the item index as a key as a last resort

+ ты банально не следуешь конвенциям по порядку описания методов в компоненте

handle мешаются с get

Sergey
26.01.2018
15:17:03
Ребят, подскажите, является ли плохой практикой вызывать setState в componentDidMount ?

Ruslan ?
26.01.2018
15:19:06
Admin
ERROR: S client not available

Sergey
26.01.2018
15:22:05
Спасибо

Dmitriy
26.01.2018
15:24:23
Народ, нужна помощь с mobx и proptypes. Как можно объявить proptypes и defaultprops для @computed гетора стора, который инжектится в компонент?

Timofey
26.01.2018
15:47:33


Mikhail
26.01.2018
15:49:46
нормально ли в ТС в литеральных типах наравне со стоковыми значениями указать null? пример: type Pet = 'cat' | 'dog' | null

Max
26.01.2018
15:51:55
*наравне пишется так

Mikhail
26.01.2018
15:52:41
*наравне пишется так
спасибо за оба ответа )

Kirill
26.01.2018
15:52:49
по-моему, все-таки читабельнее делать const themes = { green: { backgroundColor: '#0f0' } }

Oleg
26.01.2018
15:53:17
как минимум при создании объекта, если указываешь в интерфейсе тип, например строку, можно положить null, и все будет ок

Дмитрий
26.01.2018
15:56:09
Отличная надёжность

Google
Timofey
26.01.2018
16:05:42
как в новом react-router лучше всего кпопку превратить в Link? придется создавать Link со стилем кнопки?

Ivan
26.01.2018
16:07:36
Подключил react-router-redux. При смене роута редакс стор меняется, все работает нормально, но когда попробовал диспатчить новый роут из экшэна, то url меняется, а стор нет. И компоненты не перезагружаются. Кто то с таким сталкивался, подскажите, плз!

Пг
26.01.2018
16:13:36
node.addEventListener(type, handler, {passive: true}) Какое поведение будет у такого вызова? Воспримет оно третий аргумент как useCapture = true или выдаст ошибку? PS. Нет возможности протестить сейчас за неимением старых браузеров

Пг
26.01.2018
16:27:06
Сорри, что офтопиком, я просто форкаю preact пока не завезли поддержку встроенную. Вопрос стоял в том, что может там какое-то особое поведение типа assert у функции, что она должна принимать только Boolean третьим аргументом в старых браузерах.

Dimanius851
26.01.2018
16:33:54
ребят, а что делать, если есть большой объект, я его вывожу в таблицу (все его данные по ячейкам - строки), и мне нужно каждую строку изменять в этом объекте через инпуты. Можно как то привязать value каждого инпута к каждому его значению в таблице?

mobx-ом можно что ли такое запилить?.. щас гляну

Ivan
26.01.2018
16:37:37
Кто может понятно объяснить как, что, зачем делает HOC? уже не первый раз слышу, читал статейку на medium, запутали ещё больше

Пг
26.01.2018
16:38:45
Удобный способ повторного использования кода

kana
26.01.2018
16:38:58
Кто может понятно объяснить как, что, зачем делает HOC? уже не первый раз слышу, читал статейку на medium, запутали ещё больше
как - через обертывание компонента в компонент, то есть создание компонента, который внутри себя использует наш оборачиваемый в HOC компонент что - добавляет логику/рендер в другие компоненты, по сути трансформирует/расширяет компонент зачем - чтобы вынести некоторую общую логику и переюзать ее в разных компонентах

Ivan
26.01.2018
16:48:13
https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/guides/blocked-updates.md
Спасибо! Но разве не должен стейт меняться в любом случае, даже если компонент не перерендривается??

Dimanius851
26.01.2018
16:58:20
а есть какой то способ отключить принуждение к байндингу в инпутах?

Dimanius851
26.01.2018
17:00:34
Ты о чем?
хочу, что бы можно было писат в input-ах, не привязывая их к state, а потом просто брать из них value

Timofey
26.01.2018
17:00:46


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