I am trying to fire of an event when each component is clicked. Can anyone please tell me the best way to go about this? The custom method doesn't fire off at the moment. Can anyone help?
var MessageTypeNavigation = React.createClass({
displayName : 'MessageTypeNavigation',
// method I want to fire on each click
_clearBasket: function(){
console.log('clear basket');
},
_getPrimaryTabs: function(){
if(this.props.hidePrimaryTabs) return [];
var active = this.props.activeSection;
return [
<TabLink onClick={_clearBasket} isActive={active === 'general'} key="general" route="general-contacts" label="General" />,
<TabLink onClick={_clearBasket} isActive={active === 'attendance'} key="attendance" route="attendance-contacts" label="Attendance" />,
<TabLink onClick={_clearBasket} isActive={active === 'lateness'} key="lateness" route="temp" label="Lateness" />,
<TabLink onClick={_clearBasket} isActive={active === 'detention'} key="detention" route="temp" label="Detention" />,
<TabLink onClick={_clearBasket} isActive={active === 'behaviour'} key="behaviour" route="behaviour" label="Behaviour" />,
<TabLink onClick={_clearBasket} isActive={active === 'achievements'} key="achievements" route="achievements" label="Achievements" />
];
},
render: function() {
return (
<div>
<div>
<ul className="tabs">
{this._getPrimaryTabs()}
</ul>
</div>
</div>
);
},
});
Nested tabLink component:
var TabLink = React.createClass({
contextTypes: {
router: React.PropTypes.func
},
getTabClass: function () {
return this.props.isActive ? "active_on" : "";
},
getLinkNode: function() {
if (this.props.link) return <a href={this.props.link}>{this.props.label}</a>;
return <Link to={this.props.route}>{this.props.label}</Link>;
},
render: function () {
return (
<li className={this.getTabClass()}>
{this.getLinkNode()}
</li>
);
}
});
module.exports = TabLink;