[英]Why is Link to not working in react.js?
I am using react-router
and Link to
function. 我正在使用react-router
和Link to
功能。 I want to show second component
on button click but my code is not working 我想在单击按钮时显示second component
,但是我的代码不起作用
http://codepen.io/anon/pen/GNadKZ?editors=1010 http://codepen.io/anon/pen/GNadKZ?editors=1010
var Router = ReactRouter;
var DefaultRoute = Router.DefaultRoute;
var Link = Router.Link;
var Route = Router.Route;
var RouteHandler = Router.RouteHandler;
class Abc extends React.Component {
handle(){
alert('move to second component')
}
render (){
return (<div><h1>second</h1><Link to="about"><button onClick={this.handle}>move to second page</button></Link></div>);
}
}
class Pqr extends React.Component {
render (){
return (<div><h1>second</h1><button>click</button></div>)
}
}
ReactDOM.render((<Router>
<Route path="/" component={Abc}>
<Route path="about" component={Pqr}/>
</Route>
<Route path="*" component={NoMatch}/>
</Route>
</Router>),document.getElementById('root'));
There is a button in the first component. 第一个组件中有一个按钮。 I want to show second component on button click. 我想在单击按钮时显示第二个组件。
Declare {this.props.children}
in first component's render 在第一个组件的渲染中声明{this.props.children}
return (<div><h1>second</h1><Link to="about"><button onClick={this.handle}>move to second page</button></Link> {this.props.children} </div>);
check if it's working: 检查它是否正常工作:
var Router = ReactRouter;
var DefaultRoute = Router.DefaultRoute;
var Link = Router.Link;
var Route = Router.Route;
var RouteHandler = Router.RouteHandler;
class Abc extends React.Component {
handle(){
alert('move to second component')
}
render (){
console.log('inside first render');
return (<div><h1>second</h1><Link to="about"><button onClick={this.handle}>move to second page</button></Link>{this.props.children}</div>);
}
}
class Pqr extends React.Component {
render (){
return (<div><h1>second</h1><button>click</button></div>)
}
}
ReactDOM.render((<Router>
<Route path="/" component={Abc}>
<Route path="about" component={Pqr}/>
<Route path="*" component={NoMatch}/>
</Route>
</Router>),document.getElementById('root'));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.