Vì vậy, tôi đã bắt đầu với React và ES6 và bị mắc kẹt với những điều cơ bản. Thực sự đánh giá cao một số trợ giúp.Phản ứng 0.13 phương thức lớp không xác định
handleClick() throws một lỗi:
Uncaught TypeError: Cannot read property 'handleClick' of undefined
đang sau
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>
);
}
}
Đó làm giúp tôi cảm ơn bạn. Một điều nữa - tại sao 'hoạt động' được thêm vào tất cả của li? Hành vi mong đợi chỉ được thêm vào một. – walkthroughthecode
* "Hành vi mong đợi chỉ được thêm vào một." * Bạn có một biến 'active' duy nhất cho tất cả các phần tử' li'. Bạn phải cung cấp cho mỗi 'li' có trạng thái riêng (làm cho chúng thành phần riêng của chúng), hoặc lưu trữ một cái gì đó xác định phần tử' li' hoạt động, không chỉ 'true' và' false'. Btw, vì ràng buộc của bạn 'handleClick' bên trong hàm tạo,' onClick = {this.handleClick} 'suffices. –
Cảm ơn bạn, bây giờ nó ít nhiều rõ ràng :) – walkthroughthecode