简体   繁体   English

为什么Link to在react.js中不起作用?

[英]Why is Link to not working in react.js?

I am using react-router and Link to function. 我正在使用react-routerLink 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM