1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00
next.js/examples/with-ioc/pages/blog.js
Alex Indigo e401e2cf5f Added IoC example (#3595)
* Added `with-ioc` example

* pre-compile deps until we get nextjs magic working
2018-01-31 08:36:20 +01:00

42 lines
796 B
JavaScript

import React from 'react'
import { provide, types } from 'ioc'
import { Link, Router } from '../routes'
import Component1 from '../components/component1'
const posts = [
{ slug: 'hello-world', title: 'Hello world' },
{ slug: 'another-blog-post', title: 'Another blog post' }
]
@provide({
@types.func.isRequired
Link,
@types.object
Router
})
export default class extends React.Component {
static async getInitialProps ({ query, res }) {
const post = posts.find(post => post.slug === query.slug)
if (!post && res) {
res.statusCode = 404
}
return { post }
}
render () {
const { post } = this.props
if (!post) return <h1>Post not found</h1>
return (
<div>
<h1>{post.title}</h1>
<Component1 />
</div>
)
}
}