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

Reselect избавляет от необходимости делать копию/глубокую копию объекта для избеждания

мутаций стора?

14 ответов

9 просмотров

Нет это просто мемоизированные геттеры из стейта

Реселект просто оптимизирует время перерасчета стейта за счёт месомзации

Эльдар- Автор вопроса
Тимофей 🛴
Нет это просто мемоизированные геттеры из стейта

хм, неужели тогда всякий раз, когда я хочу как-то преобразовать данные, полученные из стора, мне нужно использовать Object.assign и функцию получения глубокой копии? такое входит в best practice?

Эльдар
хм, неужели тогда всякий раз, когда я хочу как-то ...

https://redux.js.org/recipes/structuring-reducers/immutable-update-patterns

Эльдар- Автор вопроса
Ivan 🧑‍🚀
https://redux.js.org/recipes/structuring-reducers/...

оо, спасибо, как раз то что я искал

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

Эльдар- Автор вопроса
Тимофей 🛴
Нет не нужно

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

Эльдар
если речь идет об экшнах, то понятно. а что если я...

Я не понимаю про что ты говоришь, да в селекторах конечно мутировать стейт нельзя, да и не припомню ситуации когда это удобно. Обычно делаешь всякие filter map sort

Эльдар- Автор вопроса
Тимофей 🛴
Я не понимаю про что ты говоришь, да в селекторах ...

например, если есть адреса в виде { [parentId]: arrayOfChildrens, ... }, а мне понадобилось составить дерево, где чилдрены будут под ключом subRows в объекте с id = child.parentId. и реализовал я это с помощью глубокой копии, в соответствующем компоненте. как это слелать лучше? вроде как можно еще в редюсере сразу в нужном виде возвращать, но что если в одном компоненте мне нужен плоский список адресов, а в другом вложенный

Эльдар
например, если есть адреса в виде { [parentId]: ar...

Выносишь логику преобразования в отдельную функцию и используешь ее в селекторе. Логики преобразования в компоненте не должно быть

Да я так выебнулся

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

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

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...
~
14
Недавно 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
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта