Skip to content

Instantly share code, notes, and snippets.

@tswistak
Created August 25, 2018 15:42
Show Gist options
  • Save tswistak/ce3022a36de0f178f5bf221cc6146a7e to your computer and use it in GitHub Desktop.
Save tswistak/ce3022a36de0f178f5bf221cc6146a7e to your computer and use it in GitHub Desktop.
InversifyJS with React, listing 4
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>;
}
}
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