0
我試圖讓反應路由器在最簡單的Hello World示例服務器上運行,無論我做什麼,回調中的道具總是未定義的。嘗試自兩天以來,API看起來已經發生了很大的變化,並且我發現了與舊API有關的所有答案。服務器端渲染與反應路由器
所以這裏的超級簡單的代碼示例:
import http from 'http'
import React from 'react'
import { renderToString } from 'react-dom/server'
import { match, RoutingContext } from 'react-router'
import fs from 'fs'
class Home extends React.Component{
render(){
return <div>{this.props.children}</div>
}
}
class Hello extends React.Component{
render(){
return <h1>Hello World</h1>
}
}
class Routes extends React.Component{
render(){
return (
<Route path="/" component={Home}>
<Route path="hello" component={Hello} />
</Route>
)
}
}
http.createServer((req, res) => {
match({ Routes, location: req.url }, (err, redirect, props) => {
if (props){
let markup = renderToString(<RouterContext {...props}/>)
res.write(markup)
res.end()
} else {
res.write("not found")
res.end()
}
})
}).listen(8888);
如果我輸入/你好瀏覽器,爲什麼它說「沒有發現」?根據文檔和API,它應該像那樣工作..我錯過了什麼?
感謝您的幫助!
途徑不應該是一個函數或類,只是JSX的對象'小號'。 'match()'所尋找的屬性是'routes',而不是'Routes'。這兩個修補程序應該可以幫助您。 –
Interrobang
非常感謝! –