
Andrew
09.08.2018
21:45:50
братан лучше беги
просто сразу

Eugene
09.08.2018
21:45:55
Ладно, забираю свои слова обратно:D

Антон
09.08.2018
21:46:38
да я тоже офигел

Google

Антон
09.08.2018
21:46:41
ну бывает

Andrew
09.08.2018
21:47:00
хооотя в принципе это не дожно ничего сломать
но все равно это говнокод

Eugene
09.08.2018
21:47:10

Vetaly
09.08.2018
21:47:16
Привет, у меня ночной затуп, может кто поможет.
Я передаю в компонент props
{tableData.map(tableRowData => {
const { id, ...formatData } = tableRowData;
return (
<TableRow
key={`${id}`}
id={id}
onEdit={onEdit}
onDelete={onDelete}
data={formatData} />
);
})}При первом render компонента - компонент не видит props. из-за чего происходит ошибка.
render() {
const { handleDeleteRow, handleEditRow } = this;
const { data } = this.props;
return (
<TableRowView
data={data}
onEdit={handleEditRow}
onDelete={handleDeleteRow}
/>
);
}По идеи же props должны были передаться в constructor
(конструктор у компонента такой)
constructor(props) {
super(props);
autobind(this);
}

Антон
09.08.2018
21:47:29
Да, работает, спасибо, круто

Eugene
09.08.2018
21:48:00
const { handleDeleteRow, handleEditRow } = this; ?

Duego
09.08.2018
21:48:00

Антон
09.08.2018
21:48:10
Я просто новичок в реакте, можете помочь собрать мысли в кучу, как это надо было сделать нормально? Хранить этот стетй в редюсере?

Andrew
09.08.2018
21:48:16

Duego
09.08.2018
21:49:30
У меня глубокий стейт и сетстейт вот так писать приходится
prev =>
prev.map((pr, i) => i === idx ? {
...pr, projectName: eventValue, errors: { ...pr.errors, projectName: false,
}}: pr),
это норм практика?

Andrew
09.08.2018
21:50:55
код пожалуйста на gist

Google

Duego
09.08.2018
21:53:47
а юзать immutablejs для setState норм?

Andrew
09.08.2018
21:54:23

Duego
09.08.2018
21:54:46
форма ввода на 3 страницы

Andrew
09.08.2018
21:55:03
вообще сразу нет
и не важно сколько данных
я чет тупанул

Duego
09.08.2018
21:55:24
вай?

Andrew
09.08.2018
21:56:00
toJS для каждого рендера делать оч дорого

Duego
09.08.2018
21:56:18
а простые линзы?

Andrew
09.08.2018
21:56:29
хотя в селекторе по сути тоже самое, но все равно setState работает не так как ты думаешь
ну тебе надо из иммутабл структур приводить все в js для рендера

Vetaly
09.08.2018
21:57:44
https://gist.github.com/Matroskins/087f0715d711daa784b09380317daf3a
вот код, не выкупаю почему render TableRow происходит с пустыми props

Andrew
09.08.2018
22:00:07
а где ты берешь this.props.data ?

Vetaly
09.08.2018
22:01:26
из ContactTable
там оно точно есть
причем ошибка в первом render только, во втором props уже появляются.

Andrew
09.08.2018
22:04:06
ну так мб ты их где-то через асинк запрос получаешь ?

Vetaly
09.08.2018
22:06:53
https://gist.github.com/Matroskins/886e1fc18befd3eda0107f99e493080e вот так получаю, они в localstorage храняться

Andrew
09.08.2018
22:09:11
render() -> componentDidMount()

Vetaly
09.08.2018
22:10:50
ну да, но там же флаг в стэйте у меня, чтобы не рендерил пока данные не записались

Google

Andrew
09.08.2018
22:14:04
проверяй что в стейте
вроде долно работать

Vetaly
09.08.2018
22:14:55
спасибо, может на свежую голову что-то пойму)
я выкупил в чем было дело, там ошибка имен была, лол((

Artem
09.08.2018
22:46:01

George
09.08.2018
22:51:26

m
09.08.2018
23:36:19

Дмитрий
10.08.2018
01:12:56

Mark
10.08.2018
03:14:01
Привет
Если defaultProps в static, можно получать к ним доступ как Component.defaultPros.propName?

Cenator
10.08.2018
03:15:00
Можно но зачем?

Mark
10.08.2018
03:15:30
Зачем - другой вопрос, сейчас просто интересно стало
Тоже самое с stateless, как я понимаю

Cenator
10.08.2018
03:17:14

Mark
10.08.2018
03:17:53
Можно но зачем?
На вскидку пока придумал такое - показывать дефолтное значение компонента и его измененное значение, пока не знаю, куда это впихнуть, но главное можно ?

Artyom
10.08.2018
04:03:19
Можно но зачем?
1) шарить пропсы
2) сторибук или что-то такое это использует для вывода

Cenator
10.08.2018
04:06:40

Artyom
10.08.2018
04:07:38
Что бы лишний экспорт импорт не делать ?♂️

Cenator
10.08.2018
04:08:11
Эм а как ты достучишься до другого компонента без импорта/экспорта?

Artyom
10.08.2018
04:08:50
лишний < —

Google

Cenator
10.08.2018
04:10:29
То есть ты предлагаешь вместо экспорта объекта импортировать компонент и забрать объект у него, тем самым имплементируя наследование?
Хоть и частично

Artyom
10.08.2018
04:12:20
Тем самым уменьшая количество кода и отображая явные зависимости

Cenator
10.08.2018
04:12:53
а если надо будет удалить компонент-источник объекта?

Artyom
10.08.2018
04:13:05
А если метеорит упадет?

Cenator
10.08.2018
04:13:23
Удаление компонента это не такое редкое явление

Artyom
10.08.2018
04:13:27
Я не говорю что всегда так делаю (я так вообще не делаю). Я лишь ответил на вопрос что можно с этим делать

Cenator
10.08.2018
04:15:42
Технически можно но ни в коем случае не позволительно

Admin
ERROR: S client not available

Павел
10.08.2018
04:22:06
Есть кто знает методы CKEditor5 balloon?

One
10.08.2018
04:32:07
именно. Не могу придумать никаких решений.
у тебя все выглядит как простой todo-list. а зачем тебе оставлять поля с подвижным стейтом? они будут потом редактироваться?
пересмотри пример todo листа на заглавной странице https://reactjs.org/ почитай по стейту еще раз, что именно должно контролироваться, другой пример из документации https://reactjs.org/docs/thinking-in-react.html#step-3-identify-the-minimal-but-complete-representation-of-ui-state иногда даже без стейта можно обойтись http://reactkungfu.com/2015/09/common-react-dot-js-mistakes-unneeded-state/ а так выглядит как будто тебе нужно постоянно рендерить новые стейтфул компоненты. реши где стейт будешь хранить.

m
10.08.2018
04:35:15


One
10.08.2018
04:36:17
именно. Не могу придумать никаких решений.
тебе нельзя хранить стейт для всей формы, я не уверен, что его в принципе можно расширять. твой стейт должен быть в подэелементе две строки ввода, которые связаны друг с другом.
а вообще если это чат, то новые строки добавляются и уже не являются стейтом возможно. ты просто добавляешь новые элементы. если это чат зачем тут стейт вообще нужен.

m
10.08.2018
04:37:49

One
10.08.2018
04:38:16
это состояние элемента, которые постоянно меняется, у тебя это две строки ввода скажем так

m
10.08.2018
04:42:20

Google

m
10.08.2018
04:42:45

One
10.08.2018
04:48:10

m
10.08.2018
04:49:27

One
10.08.2018
04:50:21
вот пример я делал для свлих целей, смотри на там на консоль пока водишь по цифрам. пример был поинтерактивней, просто я его уже перекорячил для других целей https://codesandbox.io/s/l71px5kpql

m
10.08.2018
04:54:20

One
10.08.2018
04:56:10

m
10.08.2018
04:57:01

One
10.08.2018
04:57:32

m
10.08.2018
04:58:05

One
10.08.2018
04:58:45

Duego
10.08.2018
04:59:04

m
10.08.2018
04:59:23

One
10.08.2018
05:00:48

m
10.08.2018
05:01:13

One
10.08.2018
05:01:23