next.js 类型错误_this2.flipBook.getPageFlip不是函数

ndh0cuux  于 2023-02-12  发布在  其他
关注(0)|答案(2)|浏览(136)

我曾经在Reactjs上使用react-pageflip,就像下面的代码一样,它工作得很好。当我复制相同的组件时,我在Nextjs项目中得到了这个错误。
错误:

TypeError: _this2.flipBook.getPageFlip is not a function

代码:

import HTMLFlipBook from "react-pageflip";

class Book extends Component {
...

 onFlip(data) {
         this.setState({ page : data});
     }
  nextButtonClick = () => {
         this.flipBook.getPageFlip().flipNext();
       };
     
   prevButtonClick = () => {
         this.flipBook.getPageFlip().flipPrev();
       };

rendr(){

return(

<HTMLFlipBook  maxShadowOpacity={1} mobileScrollSupport={true} 
              className="demo-book"
              drawShadow={true}
              onFlip={(e) => this.onFlip(e.data)}
              changeOrientation="portrait"
              ref={(el) => (this.flipBook = el)}
 > 
 
<div classname={page1}>
  page1
</div>
<div classname={page2}>
  page2
</div>
</HTMLFlipBook>

)
}
k7fdbhmy

k7fdbhmy1#

获取页面翻转().flipNext();在nextButtonClick和prevButtonClick函数内的块中,您应该通过翻转来使用this.flipBook.pageFlip().flipNext()。它对我有效,我希望它对您也有效。

nextButtonClick = () => {
    this.flipBook.pageFlip().flipNext()
  };


prevButtonClick = () => {
    this.flipBook.pageFlip().flipPrev();
  };
xzv2uavs

xzv2uavs2#

对于功能组件这对我有用

const bookRef = useRef(null)

const nextButtonClick = () => {
    bookRef.current.pageFlip().flipNext()
  }

 const prevButtonClick = () => {
    bookRef.current.pageFlip().flipPrev()
  }
  
<HTMLFlipBook
  onFlip={onFlip}
  width={616}
  height={872}
  showCover={true}
  ref={bookRef}
>
// ...my render page
</HTMLFlipBook>

相关问题