Bu yüzden React ve ES6 ile başladım ve çok temel bilgilerle takıldım. Bazı yardımlar için minnettarım. this
içeride undefined
olduğunuReact 0.13 sınıf yöntemi tanımsız
Uncaught TypeError: Cannot read property 'handleClick' of undefined
kod
export default class MenuItems extends React.Component {
constructor(props) {
super(props)
this.state = {active: false}
this.handleClick = this.handleClick.bind(this)
}
handleClick() {
this.setState({ active: !this.state.active });
}
render() {
let active = this.state.active
let menuItems = [{text: 'Logo'}, {text: 'promo'}, {text: 'benefits'}, { text: 'form'}]
return (
<ul>
{menuItems.map(function(item) {
return <li className={active ? 'active' : ''} onClick={this.handleClick.bind(this)} key={item.id}>{item.text}</li>;
})}
</ul>
);
}
}
teşekkür ederim. Bir şey daha - tüm li's 'neden' aktif 'eklenir? Beklenen davranış yalnızca bir tane ekliyordu. – walkthroughthecode
* "Beklenen davranış sadece bir tane ekliyordu." * Tüm 'li' öğeleri için tek bir' active' değişkeniniz var. Ya her bir “li” ye kendi devletini vermelisiniz (onları kendi bileşenlerini yapacaksınız) ya da sadece 'gerçek' ve 'yanlış' değil, aktif 'li' öğesini tanımlayan bir şeyi saklamanız gerekir. Btw, yapıcı içinde 'handleClick 'bağlandığınız için' onClick = {this.handleClick} 'yeterlidir. –
Teşekkürler, şimdi daha fazla veya daha az açık :) – walkthroughthecode