【发布时间】:2017-11-01 16:42:42
【问题描述】:
当您单击渲染方法中的锚标记时,我正在尝试更新我的组件状态。我已经尝试在构造函数中进行绑定,但仍然没有调用 console.log。下面是我的代码。请帮忙。这阻碍了我的进步,哈哈。
这是根据我之前关于 stackoverflow 的问题修改的代码。
const React = require('react');
class Navbar extends React.Component {
constructor(...props) {
super(...props);
this.setActiveTab = this.setActiveTab.bind(this)
this.state = {
currentPage: "/"
}
}
setActiveTab(e) {
console.log(e.target)
this.setState({
currentPage: e.target.href
})
}
render() {
const { path } = this.props
let classString = path === this.state.currentPage ? 'nav-item is-tab is-active' : 'nav-item is-tab'
return (
<nav className="nav">
<div className="nav-left">
<a className="nav-item">
<h1>CREATORS NEVER DIE</h1>
</a>
</div>
<div className="nav-right nav-menu">
<a href="/" className={classString} onClick={this.setActiveTab}>
Home
</a>
</div>
</nav>
)
}
}
module.exports = Navbar;
【问题讨论】:
-
你使用了
href='/'这就是为什么,从a中删除href或使用href='javascript:void(0)' -
您的锚标记有一个
href。onClick不会触发,因为链接会将您带到另一个页面。 -
@MayankShukla 我删除了 href,但控制台中仍然没有显示任何内容
-
@dileet.. 你的问题得到答案了吗?你做了什么让它发挥作用?
标签: javascript node.js reactjs express