Событие onClick не запускается в ReactJS
Мне нужно провести событие на Click
т.е. handleClick
, Это не работает ни на изображении, ни на любой кнопке.
Я тоже попробовал функции стрелок, но это также бесполезно. Ни это не бросает никакой ошибки. Кто-нибудь может предложить что-то?
let Blips = React.createClass({
handleClick(){
if (this.props.user_name != null) {
sessionStorage.setItem('user_name', JSON.stringify(this.props.user_name))
sessionStorage.setItem('port_id', JSON.stringify(this.props.port_id))
sessionStorage.setItem('ship_image', JSON.stringify(this.props.ship_image))
sessionStorage.setItem('port_type', JSON.stringify(this.props.port_type))
browserHistory.push('/dockedship/')
}
},
render(){
if (this.props.user_name) {
return (
<li className="layer" data-depth={this.props.data_depth}>
<div className={this.props.css_location}>
<img className="glyphport" onClick={this.handleClick} src={this.props.port_type_image}/>
<img className="shipport" src={this.props.ship_image}/>
</div>
</li>
)
}
}
})
1 ответ
Похоже, это проблема "старого доброго контекста":)
Если вы используете babel, который может передавать свойства класса ES2015, вы можете сделать это следующим образом:
handleClick = () => {
// ...
}
В другом случае просто свяжите метод в конструкторе:
this.handleClick = this.handleClick.bind(this);
Более подробную информацию можно найти здесь: http://egorsmirnov.me/2015/08/16/react-and-es6-part3.html