go - 在 Go 中带有 child 的 React-Router 它是如何工作的?

标签 go reactjs routing react-router

我正在尝试在 Go 中将 react-router 与服务器一起使用。

我做了一些测试,但我不能做我想做的。

我的 react 组件:

var App = React.createClass({
    render: function(){
        return (
            <div>
            <h2>App</h2>
            <li><Link to="/page1">Page 1</Link></li>
            <li><Link to="/page2">Page 2</Link></li>
            </div>
        )
    }
})

var Page1 = React.createClass({
    render: function(){
        return (
            <div>
            <h2>Page 1</h2>
            <li><Link to="/page2">Page 2</Link></li>
            </div>

        )
    }
})

var Page2 = React.createClass({
    render: function(){
        return (
            <div>
            <h2>Page 2</h2>
            <li><Link to="/page1">Page 1</Link></li>
            </div>

        )
    }
})

我的 react 路由:

   ReactDOM.render((<Router history={browserHistory}>
    <Route path="/" component={App}>
      <Route path="page1" component={Page1} />
      <Route path="page2" component={Page2} />
    </Route>
  </Router>), document.getElementById('app'))

我的围棋服务器:

func Render(c web.C, w http.ResponseWriter, r *http.Request) {
        RenderHTMLPage(w, "index.html")
}

func main() {
        goji.Get("/page1", Render)
        goji.Get("/page2", Render)
        goji.Get("/", Render)
        goji.Serve()
    }

我的问题是当我点击“App”组件中的链接时,例如:

<li><Link to="/page1">Page 1</Link></li>

url 像那样变化

http://localhost:8000/page1

但是实际的组件已经是 App 而不是 Page1,所以 url 改变了但组件没有改变。 如果我直接加载 url,我会得到相同的结果。

有人帮我吗? 谢谢:)

最佳答案

这不是一个 go 问题,而是一个 react 问题,您需要渲染 App 组件的子组件才能显示其他两个组件,这个代码片段取自 React Router 的文档(https://github.com/reactjs/react-router/blob/master/docs/API.md#props-2 ):

const routes = (
  <Route component={App}>
    <Route path="groups" component={Groups} />
    <Route path="users" component={Users} />
  </Route>
)

class App extends React.Component {
  render () {
    return (
      <div>
        {/* this will be either <Users> or <Groups> */}
        {this.props.children}
      </div>
    )
  }
}

关于go - 在 Go 中带有 child 的 React-Router 它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36293338/

相关文章:

api - Golang - API Server 和 Socket 同时存在

reactjs - TypeError : window. gtag 不是函数

go - 如何在 Golang(go-chi) 路由器上同时提供 "/something"和 "/something/"?

ruby-on-rails - 路由/in Rails

基于查询参数的 Angular 2 路由

go - 指针和结构成员函数

go - 如何将真正属于 reflect.Int32 类型 slice 的 interface{} 转换为 int32 slice ?

go - 无法启动进程 : invalid magic number in record at byte 0x0 Delve Golang

javascript - react 路由器不渲染路由组件

javascript - React.js 和具有动态宽度的水平 IScroll 5