Module update - #67
Conversation
chermashentsau
commented
Jul 27, 2023
- Добавил модули-фабрики. Смысл в том, чтобы можно было использовать стейт модулей (серверный, клиентский) для создания этих же модулей, как например это происходит в монтируемых модулях, но чего нет в абстрактных.
- Добавил в стейт модуля hostAppId по умолчанию, чтобы им так же можно было воспользоваться
🦋 Changeset detectedLatest commit: 5c52412 The changes in this PR will be included in the next version bump. This PR includes changesets to release 4 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
| } else if (result.module.factory && typeof result.module.factory === 'function') { | ||
|
|
||
| moduleResult = result.module.factory(factoryParams); | ||
| } |
There was a problem hiding this comment.
лучше бы тут добавить обработку кейса когда никакое из условий не выполнилось и бросать ошибку. Потому что сейчас если модуль косячный - то потребитель просто получит пустоту как результат хука
There was a problem hiding this comment.
ну и в таком случае unmountFn раньше вытаскивать из лоадера, чтобы при ошибке все равно отмонтирование работало нормально
| }, | ||
| '6': { | ||
| title: 'Server state Factory Module', | ||
| description: 'Сфабрикованный модуль, фабрика получает состояние с сервера', |
There was a problem hiding this comment.
"Сфабрикованный" как то немного режет ухо, может "модуль-фабрика, который получает состояние с сервера"?
|
|
||
|
|
||
|
|
||
| setModule(moduleResult) |
There was a problem hiding this comment.
Так как функция асинхронная, есть вероятность того, что компонент, в котором будет использоваться хук, будет размонтирован до того как функция будет выполнена - произойдет утечка памяти
There was a problem hiding this comment.
и разгруженный модуль никогда не будет unmountFn?.();
There was a problem hiding this comment.
Предложение: воспользоваться подходом отмены промиса через сигналы или иную реализацию https://codesandbox.io/s/summer-https-f79wl4?file=/src/App.js
There was a problem hiding this comment.
Идея отличная, но думаю, что для следующего ПРа, т.к. затронет как минимум ещё два хука
fc16a7e to
a65e5b0
Compare
…ting for factories