
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);
});
});
}

Cenator
26.01.2018
14:44:37
export const getNews = () => new Promise()

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

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

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
В комментариях фидбек


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

Rafkat
26.01.2018
14:53:58
По сути не важно
Имею ввиду, что это мог быть любой компонент, в котором был бы автокомплит

Stepan
26.01.2018
14:54:54

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

Stepan
26.01.2018
14:57:30

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 - такое, это больше на бул выглядит, чем на определение стилей

Rafkat
26.01.2018
15:04:14

Vladimir
26.01.2018
15:04:47
лол
реф юзают для доступа к элементу, никоим образом с автокомплитом это не связано

Google

Rafkat
26.01.2018
15:05:50

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 меняется, а стор нет. И компоненты не перезагружаются. Кто то с таким сталкивался, подскажите, плз!

Cenator
26.01.2018
16:07:57

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

Cenator
26.01.2018
16:19:47
Казалось бы, причем тут реакт...

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

andretshurotshka?❄️кде
26.01.2018
16:29:59

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

Ruslan ?
26.01.2018
16:46:07

Andrey
26.01.2018
16:46:38

Ivan
26.01.2018
16:48:13

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

Cenator
26.01.2018
16:59:08

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

Timofey
26.01.2018
17:00:46