@react_js

Страница 4582 из 5115
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), это норм практика?

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

Andrew
09.08.2018
21:54:23
а юзать immutablejs для setState норм?
а ты так много данных хранишь в локальном стейте ?

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
спасибо, может на свежую голову что-то пойму)

я выкупил в чем было дело, там ошибка имен была, лол((

m
09.08.2018
23:36:19
со стейтом какой-то кошмар творится
именно. Не могу придумать никаких решений.

Дмитрий
10.08.2018
01:12:56
toJS для каждого рендера делать оч дорого
Там вообще не нужно toJs делать, это антипаттерн

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
Тоже самое с stateless, как я понимаю
С наличием дефолтных значений при деструктуризации это не актуально

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/ а так выглядит как будто тебе нужно постоянно рендерить новые стейтфул компоненты. реши где стейт будешь хранить.

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

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

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

нет, это не чат. Это форма с опциональным количеством парных полей Ключ->Значение
ну форма должна редактироваться по всем полям одновременно?

нет, это не чат. Это форма с опциональным количеством парных полей Ключ->Значение
если она не фиксируется тебе нужон стейт для каждого небольшого компонента где два поля ввода и каждый контролирует свой стейт отдельно

нет, это не чат. Это форма с опциональным количеством парных полей Ключ->Значение
это вполне легко реализуется. потому что передать стейт выше чуть труднее например. а данные загоняешь в какой-то массив по ключу. у тебя кстати проблемы с ключами тоже.

m
10.08.2018
04:42:20
они добавляются в фиксированном виде, стейт для этого не нужен. туду посмотри очень внимательно. ты в стейт зачем-то данные засовываешь, так не делается. стейт это совсем не то.
Реакт просит поля ввода форм делать двухсторонним байндингом со стейтом, чтобы они отображали состояние стейта. Я делаю, и мне всё нравится. Но вот то, что я не знаю, сколько именно их будет, всё портит.

Google
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
через пуш массив допустим если они добавляются поочередно или если известно сколько их будет просто по ключу
если я буду в их общем предке иметь массив этих элементов, который не перерендеривается. пока я ввожу данные в отдельные поля, но придётся выбирать событие, когда я буду пихать значения пар в общий стейт. На добавление нового поля, например. А как потом обновленные значения обратно запихать? Не запихаются ведь (

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
может поможет https://reactjs.org/docs/update.html
Прям то что нужно, но я уже успел свой костыль написать)

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
Да, они так и делают) Но изменения массива вызывает перерендеривание )
ты не можешь добавить новые поля стейта - это однозначно, значит стейт должен хранить более младший элемент

как родитель получает массив, в котором хранятся данные полей?
я не смотрел как у тебя что заполминается, потому что хранить все данные в старшей форме это в принципе тут не верно. заодно пишется ошибка что ключей нет

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