169 похожих чатов

Друзья, подскажите, есть интерфейс списка пользователей, каждый элемент списка -

отдельный компонент.

Где бы вы хранили логику удаления пользователя, в компоненте списка или в компоненте элемента списка?

28 ответов

14 просмотров

Отдельно в экшенах

логика в списке

Paul-Cervov Автор вопроса
Oleg Frolov
Отдельно в экшенах

Спасибо, а экшен вы где бы использовали?

как это в компоненте списка?

Paul-Cervov Автор вопроса
Stanislav
логика в списке

Спасибо. Правада это вынуждает пробрасывать хэндлер сверзу вниз через несколько компонентов через пропсы

Paul Cervov
Спасибо. Правада это вынуждает пробрасывать хэндле...

это ненормально что у вас там несколько компонентов вниз, я на скриншоте вижу два компонента, список и сам элемент

Paul-Cervov Автор вопроса
Oleg Frolov
Где кнопка, там и подключать))

@im_anime вот по-другому считает. Хм

Paul Cervov
Спасибо. Правада это вынуждает пробрасывать хэндле...

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

<ItemList> <ItemTitle /> <ItemPhone /> <ItemActions> <ItemActionEdit /> <ItemActionDelete /> </ItemActions> </ItemList>

Paul-Cervov Автор вопроса
Oleg Frolov
Есть отдельный стор, где хранится этот список? Сто...

Стора нету и не будет пока, поэтому выбор либо обрабатывать в родительском компоненте и протаскивать хэндлеры вниз через пропы либо в самом компопненте элемента списка обрабатывать ...

Paul Cervov
Спасибо. Правада это вынуждает пробрасывать хэндле...

Нужно стараться держать функциональную логику и обработку данных отдельно от вью (визуальной составляющей).

Paul Cervov
Стора нету и не будет пока, поэтому выбор либо об...

Как вы себе второй вариант вообще представляете?

Paul Cervov
Стора нету и не будет пока, поэтому выбор либо об...

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

Paul-Cervov Автор вопроса
Dmitriy Shuleshov
Как вы себе второй вариант вообще представляете?

ну как как, есть <ListItem /> в нем логика удаления

Paul Cervov
ну как как, есть <ListItem /> в нем логика удалени...

Тогда в ребенка надо прокидывать ф-цию получения обновленного списка после отработки удаления.. что так проброс, что эдак

Paul-Cervov Автор вопроса
Stanislav
<ItemList> <ItemTitle /> <ItemPhone /> <ItemAct...

Спасибо, примерно так и есть, но вопрос не о структуре компонентов, а о том где хранить логку удаления элемента (запрос на сервер)

Paul Cervov
Спасибо, примерно так и есть, но вопрос не о струк...

выше был ответ что у вас это чисто ui элемент должен быть, а логика в списке

Paul-Cervov Автор вопроса
Dmitriy Shuleshov
логика удаления откуда?

Запрос на сервер и замена кнопки Удалит на Восстановить

Paul Cervov
Запрос на сервер и замена кнопки Удалит на Восстан...

Тогда может есть смысл оставить прям в компоненте

Paul-Cervov Автор вопроса
Stanislav
выше был ответ что у вас это чисто ui элемент долж...

Спасибо, так и есть сейчас, просто смотрел исходники apollo graphql tutorial и там логика была в самом элементе, вот меня и смутило, решил тут спросить

Paul Cervov
Спасибо, так и есть сейчас, просто смотрел исходни...

У аполло другая архитектура, если так можно её назвать в целом. Там вообще не совсем про экшены и хранение данных, больше про взаимодействие с графкл

я бы сделал инверсию контроля

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта