亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

reactjs給出錯誤Uncaught TypeError:超級表達式必須為null或函數

reactjs給出錯誤Uncaught TypeError:超級表達式必須為null或函數

jeck貓 2019-08-26 19:16:14
reactjs給出錯誤Uncaught TypeError:超級表達式必須為null或函數,而不是未定義我正在使用reactjs。當我運行下面的代碼時,瀏覽器會說:未捕獲的TypeError:超級表達式必須為null或函數,而不是未定義任何有關錯誤的提示都將受到贊賞。首先是用于編譯代碼的行:browserify -t reactify -t babelify examples/temp.jsx  -o examples/public/app.js和代碼:var React = require('react');class HelloMessage extends React.Component {   render() {     return <div>Hello </div>;   }}更新:在這個問題上在地獄火中燃燒了三天后,我發現我沒有使用最新版本的反應。全球安裝:sudo npm install -g [email protected]在本地安裝:npm install [email protected]確保瀏覽器也使用正確的版本:<script type="text/javascript" src="react-0.13.2.js"></script>希望這能為他人節省三天的寶貴生命。
查看完整描述

3 回答

?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

班級名稱

首先,如果您確定要從正確命名的類擴展,例如React.Component,而不是React.component或React.createComponent,則可能需要升級React版本。有關要擴展的類的更多信息,請參閱下面的答案。

升級React

自版本0.13.0起,React僅支持ES6風格的類(請參閱此處有關支持介紹的官方博客文章。

在此之前,使用時:

class HelloMessage extends React.Component

您試圖使用ES6關鍵字(extends)從未使用ES6定義的類中繼承子類class。這可能是您遇到super定義等奇怪行為的原因。

所以,是的,TL; DR - 更新到React v0.13.x.

循環依賴

如果您具有循環導入結構,也會發生這種情況。一個模塊導入另一個模塊,反之亦然。在這種情況下,您只需要重構代碼以避免它。更多信息


查看完整回答
反對 回復 2019-08-26
?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

這意味著你想要子類,應該是Class,但是undefined。原因可能是:

  • 錯字輸入Class extends ...,所以你擴展未定義的變量

  • 錯字輸入import ... from,所以你undefined從模塊導入

  • 引用模塊不包含值,您想要導入(例如過時模塊 - 使用React的情況),因此您導入非現有值(undefined

  • 參考模塊export ...語句中的拼寫錯誤,因此它導出未定義的變量

  • 引用模塊缺少export語句,所以它只導出undefined


查看完整回答
反對 回復 2019-08-26
?
慕容森

TA貢獻1853條經驗 獲得超18個贊

它也可能是由拼寫錯誤引起的,所以不是Component使用大寫C,而是component使用較低的c,例如:


React.component //wrong.

React.Component //correct.

注意: 此錯誤的來源可能是因為存在React并且我們自動認為接下來的應該是以小寫字母開頭的react方法或屬性,但實際上它是另一個Class(Component)應該以大寫字母開頭。


查看完整回答
反對 回復 2019-08-26
  • 3 回答
  • 0 關注
  • 973 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號