
mihail
20.09.2018
20:37:40
thunk используется для асинхроного кода
чтобы ты смог отложить диспатч

Eduard
20.09.2018
20:38:13
Спасибо большое ещё раз)

mihail
20.09.2018
20:38:19
и уже как колбэк этой функции, которая асинхрона

Google

mihail
20.09.2018
20:38:24
ты и сделаешь dispatch
и диспатч у тебя скорей всего будет то, что зарезолвила асинхроная функция
тоесть .. какой нибудь ajax request
и в этом диспатче ты уже передаешь экшен креатор, который вернет именно объект
и этот объект попадет в reducer и изменит стор
поделай в контексте редакса асинхронные экшен креаторы
и ты поймешь что зачем и почему
setTimeout.. ajax request, setInterval
ещё есть штука как redux-saga

Cenator
20.09.2018
20:40:35

Eduard
20.09.2018
20:41:14
Тоже для асинхронна

Илья
20.09.2018
20:41:27

Google

mihail
20.09.2018
20:41:52

Kos
20.09.2018
20:42:52

Eduard
20.09.2018
20:43:17
?
Спасибо

Vlad
20.09.2018
21:06:42
Можно расширить ShouldComponentUpdate in PureComponent?

Илья
20.09.2018
21:21:50

Andrey
20.09.2018
21:22:24
Для таких есть Component

Vlad
20.09.2018
21:24:30
@XaveScor просто надо делать проверку все пропсов + с react spring стили на апдейт, что ререндера не было, он каждый раз новый обьект возращает

Andrey
20.09.2018
21:25:03

Artur
21.09.2018
00:53:39
Привет всем. Не мог бы кто-то подсказать в чем ошибка. Программа на redux, redux-thunk и axios обычный todo list когда нажимаю на кнопку удалить, элемент остаеться на на страницу, но если перезагрузить страницу то его нет. Я пробовал на action, отвечающий за удаление, по окончанию прикрутить action, который вначале срабатывает что бы получить все элементы (axios.get) но он у меня работает криво по первому клику не удаляет а потом когда второй раз кликаешь на любой элемент удаляет тот который был кликнут первым. Подскажите где ошибку искать или каким-то советом поделитесь пожалуйста.

Cenator
21.09.2018
00:55:12
у тебя в key индекс элемента массива задан, так нельзя делать
Хотя может ошибаюсь, короче сделай пример на codesandbox

Artur
21.09.2018
00:59:07
Зраствуйте, У меня в key задан id который я получаю по API , консоль не жалуется, id уникален я думал что с этим не связано. А как лучше реалзовать тогда подскажите пожалуйста

Andrew
21.09.2018
01:02:08
вообще ниче не ясно.

Artur
21.09.2018
01:06:56
Простите
вот sandbox , сильно не ругайтесь новичок
https://codesandbox.io/s/j4nxoz594v

Petr
21.09.2018
01:07:40
Тебе нужно внедрить оптимистичный пользовательский интерфейс, если я правильно понял проблему

Artur
21.09.2018
01:15:51
Не совсем понял что вы имеете ввиду

Google

Petr
21.09.2018
01:17:30
так, в чем проблема точно?
по коду я понял что там всё ок, к удаленному туду присвается флаг deleting: true

Artur
21.09.2018
01:19:17
Когда нажимаю кнопку что б удалить элемент, он удаляется только если перезагрузить страницу. А мне надо что б он удалялся со странице по клику без перезагрузки окна.

Petr
21.09.2018
01:22:57
ну вместо присвоения флага deleting: true удаляй этот элемент
а стоп

Artur
21.09.2018
01:24:59
deleting: true у меня для присвоения класса
что б анимацию добавить

Petr
21.09.2018
01:25:27
у тебя не вызывается dispatch(DeleteTodoSuccess(todo))
if (res.status === 204) {
поменяй на 200

Artur
21.09.2018
01:29:43
Спасибо Огромное

Petr
21.09.2018
01:30:30
велком!

Vitaliy
21.09.2018
03:47:48
как узнать в каком году в реакте появились refs?

J.
21.09.2018
03:57:53

Nikolay
21.09.2018
04:00:21
Универсальнее уж точно.
Потому что есть еще добавление к примеру.

J.
21.09.2018
04:03:28

Oleg
21.09.2018
04:13:02
как узнать в каком году в реакте появились refs?
Почти в текущем виде они появились в версии 0.14 в 2015 году https://reactjs.org/blog/2015/10/07/react-v0.14.html. А до этого нужно было вызывать getDOMNode/findDOMNode, с какой версии это было точно не помню, но в 0.9 было точно (начало 2014 года)

Nikolay
21.09.2018
04:22:16
В почте у них точно был optimistic update

Google

J.
21.09.2018
04:23:54
Отдельный массив православнее, кажется.
Просто у меня был отдельный массив для удаляемых из которого я брал id если нужно было вернуть item. Но я вот только что понял) что можно ведь, если зафейлилось удаление передавать id в экшене тоже

Nikolay
21.09.2018
04:25:01

Admin
ERROR: S client not available

Nikolay
21.09.2018
04:32:56
Короче, я практикую такой подход: есть несколько списков с идшниками, типа там draft, deleting, main и т.д. Отдельной веткой стейта есть коллекция {[id]: Entity}. Редукторы занимаются раскидыванием идшников между этими списками. Кстати, при том же удалении важно обратить внимание, что пока сущность физически не удалена, из main-списка ты ее тоже не удаляешь, а просто скрываешь в рендере. Селектор пишешь для фильтрации, и норм :)
Иначе непонятно при фейле, куда ее вставлять обратно :)
Добавлять в саму сущность какие-то поля -- это черника полнейшая, имхо. В компонент -- да, но это будет вычисляемый селектором пропс :)

J.
21.09.2018
04:39:46
Вообще крайне желательно :)
Ну я это все подобным образом тоже делаю. Только вот реально ли нужен например deleting массив. Можно удалить id bp main id-шников, а в случае фейла удаления вернуть через экшн может

Nikolay
21.09.2018
04:40:06
С добавлением чутка сложнее, там еще и идшники суррогатные придется генерить, а потом обновлять их на реальные.

J.
21.09.2018
04:40:42

Nikolay
21.09.2018
04:42:16

J.
21.09.2018
04:44:28

Nikolay
21.09.2018
04:44:59

J.
21.09.2018
04:45:49

Nikolay
21.09.2018
04:46:11
Опять же, где гарантия, что оно всегда так будет? :)

J.
21.09.2018
04:50:01

Nikolay
21.09.2018
04:50:51
Да, потому что удаления по факту еще не произошло. Основной список должен отражать реальное положение дел :)
Оптимистичный апдейт -- это по сути такая наёбка юзера, когда мы просто скрываем компонент, а юзеру кажется, что у него очень быстрый интернет :)

J.
21.09.2018
04:54:18

Google

Nikolay
21.09.2018
04:57:14

J.
21.09.2018
04:59:05

Nikolay
21.09.2018
05:47:40

J.
21.09.2018
05:48:18

Nikolay
21.09.2018
05:49:18

J.
21.09.2018
05:54:02

Nikolay
21.09.2018
05:56:19
Ну у нас пока что вроде никакого рокет-саенса, берем срез данных, подгружаем товары, и всё в таком духе. Рано или поздно стейт конечно распухнет, но возможно уже где-то и выгрузка из памяти тоже есть.

Rauf
21.09.2018
07:06:11
Ребята какая разница между ReactDOM.render() и проста render:function() ???

J.
21.09.2018
07:08:29

Rauf
21.09.2018
07:08:39
да
let Block = React.createClass ({ render: function(){ и далее тело функции