
Max
05.08.2018
19:27:01
в рендер, в mapStateToProps и тд

Юра
05.08.2018
19:27:41

Max
05.08.2018
19:28:40
https://codesandbox.io/
короче код давай выкладывай

Google

Max
05.08.2018
19:28:57
по скринам это щас всю ночь гадать где у тебя опечатка

Юра
05.08.2018
19:29:01
сейчас

Max
05.08.2018
19:29:09
там я так понял не сильно много его )

Oleksandr
05.08.2018
19:29:14
Доброй ночи. Почему flow не проверяет этот файл. У меня указано что classes это string, а по сути это объект. Но flow пишет no errors.

Max
05.08.2018
19:29:27

Oleksandr
05.08.2018
19:29:44
Спасибо

Юра
05.08.2018
19:34:52

Max
05.08.2018
19:35:38
return <Comment key={index} obj={i} id={index}/>
во первых ключ по индексу поменяй на id

Юра
05.08.2018
19:36:49
key={id} ?

Max
05.08.2018
19:37:02
i.id если i у тебя это комментарий
во-вторых тут нет componentWillReceiveProps https://github.com/GudikQ/new-project/blob/master/components/Comment.jsx
соответственно пропсы могут меняються а компоненту пофигу

Google

Max
05.08.2018
19:37:58
а учитывая что ты профукал key в первом пункте может как раз это и быть проблемой

Andrew
05.08.2018
19:38:42

Max
05.08.2018
19:39:25
да, ты прав
нужно getDerivedStateFromProps
и я не вижу где у тебя id комментария задается
вроде на скринах есть

Юра
05.08.2018
19:41:08

Max
05.08.2018
19:41:42
https://reactjs.org/docs/lists-and-keys.html#keys
добавь генерацию id
uuid какой-нибудь, либо timestamp хотя бы

Юра
05.08.2018
19:42:33
ты имеешь ввиду типо fakeId?

Max
05.08.2018
19:42:42
что значит fakeid?

Юра
05.08.2018
19:42:43
что бы при добавлении еще и ид был?

Max
05.08.2018
19:42:46
да

Юра
05.08.2018
19:43:10
а как лучше реализовать что бы ид был?

Max
05.08.2018
19:43:25
"лучше" — понятие растяжимое и зависит от твоего хранилища

Юра
05.08.2018
19:43:54
значит перефразирую, как правильно это делать?

Max
05.08.2018
19:45:11
угадай какой ответ будет :)
вообще забудь про слово "правильно" :)
если смотреть на твой код сейчас то генери сам

Google

Max
05.08.2018
19:46:18
если id это ключ в бд с автоинкриментом то его будет генерить бекенд
если ключ uuid то можно и самому

Юра
05.08.2018
19:46:32
угадай какой ответ будет :)
я думал насчет того, что добавить ид каждому коментраию и уже по ид делать, но не понял как добавить сообсветноо этот ид)

Max
05.08.2018
19:47:23
короче
yarn add uuid
uuidv4 = require('uuid/v4')
id = uuidv4()
все, дальше сам

Юра
05.08.2018
19:48:21
спасибо за помощь)

Дмитрий
05.08.2018
19:51:09
uuid в данном случае полностью бесполезен
Проблема совершенно на другом уровне

Max
05.08.2018
19:51:32
ну навскидку проблема с необновлением стейта и key

Дмитрий
05.08.2018
19:52:12
Проблемы с key нет совершенно)
Нет никакой проблемы генерить айдишники, вполне достаточно инкремента и toString(36)

Max
05.08.2018
19:52:27
у меня были, но при сортировке

Дмитрий
05.08.2018
19:52:58
Проблема именно в данных, которые по сути денормализованы, так как по исходным данным у нас нет айдишников — это симптом
Нормализованные данные по определению имеют нормальный key по которому их можно отличить друг от друга
У меня например в конце той недели всплыла проблема, что ключ у данных — составной (выглядит как [string, number, number]), всю голову сломал как с этим иметь дело, пока не вспомнил про setIn в иммутабле
Не было бы иммутабла и не знал бы про составные ключи — думаю бы начал мутить всякие псевдо айдишники, но проблемы это особо не решило бы)

Alex
05.08.2018
20:06:25
это похоже на то, что я делаю в reistore
только у меня уже другие проблемы добавились, проверка эквивалентности ключей (у меня путей), мутации и селекторы на их основе, динамичные ключи (с аргументами)

Bear
05.08.2018
20:29:05
Если кому интересно, решение и пояснение есть в мануалах https://reactjs.org/docs/dom-elements.html#suppresscontenteditablewarning

Google

Дмитрий
05.08.2018
20:33:15
Разница в том, что это не путь, это чисто такой индекс, тройной, вот так вот описываются данные
И оверинжинеринг никакой тут не требуется, так как setIn работает с массивом, а уж массив как угодно составлять можно, это библиотеки вообще не касается)
Главное чтобы работало идемпотентно, state.getIn([а, 10, 32]) === state.getIn([a, 10, 32]) не смотря на разницу ссылок на ключи и отсутствующие элементы в коллекции

Dmitry
05.08.2018
20:39:36
надеюсь ты метод не setIn назвал ?)

Admin
ERROR: S client not available

Дмитрий
05.08.2018
20:39:51
Так что это не "только у меня добавилась проблема эквивалентности" а "моё решение все ещё не решает данной проблемы"

Dmitry
05.08.2018
20:40:46
так а ты чет реализовывал у себя ?

Максим
05.08.2018
20:40:50
народ я уже замучился как изменить состояние если оно создано как масив

Dmitry
05.08.2018
20:40:59
или это в имьютабле просто ?

Дмитрий
05.08.2018
20:41:02
Более того, я офигел вообще, но это строго типизируется
Бля
?

Максим
05.08.2018
20:41:58
где конкрестно есть в доке ?
redux не использую

Roman
05.08.2018
20:42:28

Kelin
05.08.2018
20:42:43
Люди не знают про concat

Google

Andrew
05.08.2018
20:42:52
Есть ...

Максим
05.08.2018
20:43:09
я не испльзую редакс

Roman
05.08.2018
20:43:14
this.setState({
arr: [...this.state.arr, newelement]
})

Kelin
05.08.2018
20:43:17
ну или это

Максим
05.08.2018
20:45:17
let obj = {
id:id,
value:value
};
this.setState({
array: obj
})
у меня конкретно такой случай

Roman
05.08.2018
20:46:01
ты массиву объект присваиваешь?

Максим
05.08.2018
20:46:41
да мне над чтоб в масив добавлялся обьект

Roman
05.08.2018
20:47:07
this.setState({
arr: [...this.state.arr, obj]
})
нее?

Kelin
05.08.2018
20:47:31
тебе бы основы js изучить для начала

Сергей
05.08.2018
20:48:12

Max
05.08.2018
20:48:52

Сергей
05.08.2018
20:48:59

Dmitry
05.08.2018
20:49:05

Kendr
05.08.2018
20:49:32
))0

Максим
05.08.2018
20:49:46
я уже год учу js может и все равно допускаю такие ошибки может есть додите совет что с этим делатьь

Сергей
05.08.2018
20:50:00