Created
August 25, 2018 15:42
-
-
Save tswistak/ce3022a36de0f178f5bf221cc6146a7e to your computer and use it in GitHub Desktop.
InversifyJS with React, listing 4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import * as React from "react"; | |
| import { inject, injectable } from "inversify"; | |
| import { connect } from "react-inversify"; | |
| import { IProvider } from "./providers"; | |
| type Props = { | |
| nameProvider: IProvider<string>; | |
| }; | |
| @injectable() | |
| class Dependencies { | |
| constructor( | |
| @inject("nameProvider") public readonly nameProvider: IProvider<string> | |
| ) {} | |
| } | |
| @connect( | |
| Dependencies, | |
| deps => ({ | |
| nameProvider: deps.nameProvider | |
| }) | |
| ) | |
| export class Hello extends React.Component<Props> { | |
| render() { | |
| return <h1>Hello {this.props.nameProvider.provide()}!</h1>; | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import "reflect-metadata"; | |
| import * as React from "react"; | |
| import { render } from "react-dom"; | |
| import { Provider } from "react-inversify"; | |
| import { Hello } from "./Hello"; | |
| import { container } from "./ioc"; | |
| const App = () => ( | |
| <Provider container={container}> | |
| <div> | |
| <Hello /> | |
| </div> | |
| </Provider> | |
| ); | |
| render(<App />, document.getElementById("root")); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment