首页 > 解决方案 > React confetti:超级表达式必须为空或函数

问题描述

我正在尝试为我的应用程序使用 react-confetti。在开发中一切正常。但是当我尝试推送应用程序时,我的浏览器会呈现一个空白屏幕并在控制台中给我这个警告:

Uncaught TypeError: Super expression must either be null or a function
    at react-confetti.min.js:570
    at react-confetti.min.js:569
    at Module.<anonymous> (react-confetti.min.js:552)
    at n (react-confetti.min.js:14)
    at Object.e.exports (react-confetti.min.js:177)
    at n (react-confetti.min.js:14)
    at e.exports (react-confetti.min.js:50)
    at Object.<anonymous> (react-confetti.min.js:4)
    at f ((index):2)
    at Module.843 (main.661b6aa6.chunk.js:1)

我的组件如下所示:

import React, { Component, createRef } from 'react'
import Confetti from 'react-confetti'

class IndexView extends Component {
  constructor(props) {
    super(props)
    this.state = {
      height: 0,
      width: 0,
    }
    this.confettiDiv = createRef();
  }

  componentDidMount() {
    const height = this.confettiDiv.current.clientHeight;
    const width = this.confettiDiv.current.clientWidth;
    this.setState({ height, width })
  }

  render() {
    return (<div ref={this.confettiDiv}><Confetti height={this.state.height} width={this.state.width}/></div>)
  }
}

我不确定是否可以对这个错误做任何事情,因为它似乎发生在模块本身中。也许有人以前遇到过这个问题?

标签: reactjs

解决方案


将 react-confetti 版本降级到 4.0.1 对我有用。缩小版似乎有一些问题。

如果您不想降级,请将导入更改为此。

import Confetti from 'react-confetti'; --before
import Confetti from 'react-confetti/dist/react-confetti'; --after

推荐阅读