当我点击学生按钮时,它应该调用我调用其他组件的内部函数,但是我收到错误。如何通过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
答案 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>
)
}
}