Javascript 未定义传递给onclick属性的类函数

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

我试图构建一个类,该类以某种方式建模为React类的生成方式。这就是我到目前为止所做的:

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()等价的逻辑