A simple DI package inspired by the MVP pattern. It can inject the presentation layer in React.js/React Native applications.
Installation
Run yarn add mvp-di
Usage
- implement PresenterMap
; .setComponentEnum.HOME, HomePresenter .setComponentEnum.SETTINGS, SettingsPresenter;
-
call
DIBuilder.build(PresenterMap)
in your root component -
implement view interface:
;
- implement presenter:
;
- implement component and use
@inject
decorator to inject dependency:
;
@inject
decorator instantiate HomePresenter.ts
object and append it to Home.tsx
object automatically.
@viewProperty
decorator marks property as Injectable
and provides access it for HomePresenter.ts
@bind
decorator is also available
Important
The Presenter <T>
extension provides the ability to communicate with View methods.
And this is a must. Presenter <T>
provides a view
property that gives
access to the View methods.
All of your view interfaces must extends the MvpView
.
It will oblige your views to implement getClassName
method.
getClassName
have to return string that exactly like in DITypes enum