@react_js

Страница 3569 из 5115
Valeriy
03.04.2018
08:34:52
ты же должен понимать что значит очистка твоего стейта

никто за тебя это не придумает

Oleg
03.04.2018
08:35:10
Ну а мне вот хочется его пустым сделать

с setState этого не сделать

Google
Valeriy
03.04.2018
08:35:26
мы про локальный стейт компонента же сейчас?

Oleg
03.04.2018
08:35:30
Да

Valeriy
03.04.2018
08:35:37
вот

ты на стадии создания компонента всегда знаешь структуру стейта

Oleg
03.04.2018
08:35:58
Нет

Valeriy
03.04.2018
08:35:59
всегда задаешь начальные значения

ну если нет, то ты не прав

учись делать правильно

Oleg
03.04.2018
08:36:20
У меня есть динамические ключи в стейте

Типа row${ID}_active

Artyom
03.04.2018
08:36:46
потому что надо просто сделать initialState переменную и сделать this.setState(initialState)
Если ты расширишь объект стейта, ты не сможешь удалить новые поля

Cenator
03.04.2018
08:37:02
Artyom
03.04.2018
08:37:10
У меня есть динамические ключи в стейте
Храни их в отдельном поле и перезаписывай его

Google
Valeriy
03.04.2018
08:37:17
Oleg
03.04.2018
08:37:29
Типа row${ID}_active
И пока кто-то не сделает тру, они вообще не заданы, тобишь undefined

Храни их в отдельном поле и перезаписывай его
И как это поможет? Я не знаю их количества чтобы на этапе инициализации задать

Valeriy
03.04.2018
08:38:03
Undefined вообще в стейтах не должно быть никогда

Oleg
03.04.2018
08:38:14
Я не придумал иного способа, лол

Там и нет undefined

Artyom
03.04.2018
08:38:41
И как это поможет? Я не знаю их количества чтобы на этапе инициализации задать
Че? Просто перенеси эти значения на уровень ниже в стейте, таким образом ты сможешь делать что хочешь с этим полем

Oleg
03.04.2018
08:39:30
Блять даун в лс ещё пишет

Pauline
03.04.2018
08:40:03
Oleg
03.04.2018
08:40:10
Спамер

Pauline
03.04.2018
08:40:23
Спамер
Репорть

Maxim robox
03.04.2018
08:40:59
Valeriy
03.04.2018
08:41:28
в общем смысл в том, что структуру стейта на врехнем уровне ты всегда должен инициализировать либо в конструкторе. либо просто class ... { state = { ... }

Oleg K
03.04.2018
08:41:45
слооожно

Valeriy
03.04.2018
08:42:00
и если нужно обнулять, то ты должен четко понимать какие параметры будут считаться обнуленными с какими значениями

там где ты ожидаешь массив, должно быть key: []

там где объект key: {}

строка str: ''

и т.д.

Google
Valeriy
03.04.2018
08:42:28
а не undefined/null

Valeriy
03.04.2018
08:43:37
конечно

ну смотри ты же потом в рендеринге заколебешься делать всякие map, reduce, и прочие

постоянно проверяя переменную на Array.isArray(array) && array.map(item => ...

а так ты всегда знаешь что у тебя невозможны значения undefined null

хотя проверять конечно всегда полезно

а то рано или поздно у тебя будут ошибки типа



и они будут ломать тебе рендеринг

тебе придется вечно все это catch-ить

Oleg
03.04.2018
08:47:16
Че? Просто перенеси эти значения на уровень ниже в стейте, таким образом ты сможешь делать что хочешь с этим полем
Возможно я плохо объяснил. У меня на одном проекте была следующая ситуация: есть неопределенное количество строчек таблицы (приходят с апи), у каждой строчки есть состояние (развёрнута-не развёрнута), при этом отдельная строчка не является компонентом, а лежит в одной плоскости с остальными просто как кусок html. Соответственно хранить состояние всех строчек мне пришлось в одном стейте. Я сделал так: <tr show={this.state[row.id${active}]}, но при этом изначально в стейте такого ключа вообще нету, то есть он равен undefined. Мне это абсолютно не мешало так как изначально строчки должны были быть скрытыми, а undefined преобразовался в false. А вот когда юзер уже кликал на кнопку, в стейт записывался ключ this.state[row.id${active}] со значением true.

Oleg K
03.04.2018
08:47:51
так ты себе сам усложнил жизнь как по мне

Oleg
03.04.2018
08:47:54
Я это к тому что количество ключей в стейте не всегда известно

Да, лучше было сделать строчку компонентом и держать в каждой свой стейт, но мне было лень переписывать

Oleg
03.04.2018
08:49:07
this.state.rows[row.id${active}]
У меня так и хранилось, на втором уровне стейта

Но это не важно

Valeriy
03.04.2018
08:49:36
как раз это важно

Google
Artyom
03.04.2018
08:49:55
У меня так и хранилось, на втором уровне стейта
Ну в этом случае всегда можно сделать setState({rows: []})

Oleg
03.04.2018
08:50:05
А, хотя да, чет я затупил

Viktor
03.04.2018
08:50:07


robertson
03.04.2018
08:50:35


и как?

Admin
ERROR: S client not available

Valeriy
03.04.2018
08:51:40
handleSubmit не три параметра всасывает?

хотя это же формик

там он во втором параметре пропсы умеет передавать

handleSubmit: (values, { props, ... }

в пропсах забинденый диспатчер

robertson
03.04.2018
08:53:39


Valeriy
03.04.2018
08:53:44
или уже забинденные экшины

robertson
03.04.2018
08:53:45
да, верно

Oleg K
03.04.2018
08:53:47
+

robertson
03.04.2018
08:54:07
а что за setSubmitting? не могу понять

Сергей
03.04.2018
08:55:58
warning.js Warning: Text content did not match. Server: "..." Client: "..." сталкивался кто-нить с таким?

Сергей
03.04.2018
08:57:14
вырубить SSR
всмысле не писать ssr приложения?

Google
Valeriy
03.04.2018
08:57:57
Сергей
03.04.2018
08:58:53
вообще понял что redux не оч дружит с ssr

Valeriy
03.04.2018
09:04:37
вообще надо понять, что сам по себе SSR это извращение и костыль

очень бы хотелось, чтобы эта хрень исчезла

Andrey
03.04.2018
09:05:50
Valeriy
03.04.2018
09:06:00
а что насчет SEO без SSR?
ну так и надо эту проблему решать

но по другому как то

а не в ущерб фронтенду

а то вроде как и не тонкий клиент получается

Valeriy
03.04.2018
09:06:53
т.е ни туда ни сюда

Cenator
03.04.2018
09:08:24
ну так и надо эту проблему решать
научить краулеры исполнять жс

Valeriy
03.04.2018
09:08:44
научить краулеры исполнять жс
не обязательно на самом деле

Cenator
03.04.2018
09:09:14
Valeriy
03.04.2018
09:09:27
скорее всего нужно родить некий протокол общения краулеров с вебом

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