Javascript 未定义传递给onclick属性的类函数
我试图构建一个类,该类以某种方式建模为React类的生成方式。这就是我到目前为止所做的:Javascript 未定义传递给onclick属性的类函数,javascript,es6-class,Javascript,Es6 Class,我试图构建一个类,该类以某种方式建模为React类的生成方式。这就是我到目前为止所做的: export default class Pagination { constructor(attr) { const { totalPages } = attr; this.totalPages = totalPages; this.activePage = 1; } goToPage(newPageNumber) { console.log(newPage
export default class Pagination {
constructor(attr) {
const { totalPages } = attr;
this.totalPages = totalPages;
this.activePage = 1;
}
goToPage(newPageNumber) {
console.log(newPageNumber);
}
render() {
const pages = [];
for (let i = 1; i <= this.totalPages; i++) {
pages.push(`
<li>
<a href="javascript:void(0)" onclick="this.goToPage(${i})" class="${
i === this.activePage ? 'active' : ''
}">${i}</a>
</li>
`);
}
return pages.join('');
}
}
导出默认类分页{
构造函数(attr){
const{totalPages}=attr;
this.totalPages=totalPages;
this.activePage=1;
}
goToPage(新页码){
console.log(newPageNumber);
}
render(){
常量页=[];
对于(设i=1;i您必须将goToPage
绑定到父上下文:
constructor(attr) {
const { totalPages } = attr;
this.totalPages = totalPages;
this.activePage = 1;
this.goToPage = this.goToPage.bind(this);
}
但是,请记住,在html元素中调用onclick
会自动将此
分配给元素上下文。因此,您需要使用eventlistener
。您好,谢谢您的帮助。我刚刚尝试过这样做,但出现了以下错误:this.goToPage不是function@JudeMaranga对,我明白你的意思了e现在正在做。在您的例子中,这个
引用html元素。您需要附加一个事件侦听器,并在触发事件时调用一个方法,而不是使用html onclick属性。什么时候将事件侦听器设置为每个的最佳时间?就像我将创建另一个名为setEventListeners的类方法一样
然后在调用render
之后,我将调用该方法?在React中,我将在componentDidMount()中设置事件侦听器。因此,我认为您应该尝试找到某种与componentDidMount()等价的逻辑