使用reactjs进行onclick和函数调用

时间:2017-01-25 09:16:06

标签: reactjs

当我点击学生按钮时,它应该调用我调用其他组件的内部函数,但是我收到错误。如何通过onlick调用其他组件。

   import React from 'react';
//import s from './style.css';
import Students from './students.js'
require('./style.scss');
class Display extends React.Component {

  function  studentfunction(){
  <Students/>
  };
  render()
  {

    return(
      <div className="container">
      {this.state.clicked ? <Students/>}
      <h1 className="dashboard">Dashboard</h1>
     <table className="table1" >
     <tbody className="tbody1" >
<tr>
    <td ><input  type="button" value="Students" onClick={this.studentfunction} /></td>
    <td> <input type="button" value="Teachers" /></td>

    <td> <input type="button" value="Inbox" /></td>
</tr>
<tr>
   <td> <input type="button" value="Holidays" /></td>
    <td> <input type="button" value="Circular" /></td>

    <td> <input type="button" value="Notifications" /></td>
    </tr>
<tr>
    <td> <input type="button" value="Events" /></td>

      <td> <input type="button" value="Gallery" /></td>

</tr>
</tbody>
    </table>

      </div>
    );
  }
}
export default Display

2 个答案:

答案 0 :(得分:2)

您需要的不是按钮上的onClick handler,而是指向正确组件的路径

尝试并指定学生组件的路线

然后使用

<button type="button"><Link to="/Students">Students</Link>

onClick需要一个函数而不是一个组件,这就是你得到错误的原因

答案 1 :(得分:1)

最好的方法是使用react-router库。我强烈建议您关注the tutorial

setting up react-router in your app之后你会得到类似的东西。

  <Router history={hashHistory}>
    <Route path="/" component={App}/>
    <Route path="/students" component={Students}/>
  </Router>

下一步是使用Link中的react-router组件。

// modules/App.js
import React from 'react'
import { Link } from 'react-router'

export default React.Component {
  render() {
    return (
      <div>
        <h1>Your App</h1>
        <ul role="nav">
          <li><Link to="/about">About</Link></li>
          <li><Link to="/students">Students</Link></li>
        </ul>
      </div>
    )
  }
}