使用React Hooks時遇到的錯誤提示

Thoughtful valiant.發表於2019-01-04

去年的React大會上,Dan大神介紹了Hooks,從那以後Hooks就引起了廣泛的關注。

今天在群裡看到有朋友在使用Hooks時,會報錯下圖中錯誤:

使用React Hooks時遇到的錯誤提示

我在本地建立了專案(使用create-react-app建立)果然出現了上圖中的錯誤。於是我去翻閱了React官方文件的說明,看到了以下說明:

Hooks are an upcoming feature that lets you use state and other React features without writing a class. They’re currently in React v16.7.0-alpha.

於是更改了package.json檔案中的版本:

"dependencies": {
    "react": "^16.7.0-alpha.2",
    "react-dom": "^16.7.0-alpha.2"
  }
複製程式碼

npm install一下,執行之後發現,咦~還是報錯,但是換了一個錯誤提示:

使用React Hooks時遇到的錯誤提示

對比和官方教程中的程式碼,也沒有什麼出入,但是總是會報這個錯誤。於是,將程式碼轉移到CodeSandBox上嘗試一下,沒想到可以順利執行。

後來思考了一下,覺得既然已經確定了是alpha版本中可以使用Hooks,那麼為什麼還要在package.json中使用^來進行依賴模組的版本控制呢?索性刪掉^

"dependencies": {
    "react": "16.7.0-alpha.2",
    "react-dom": "16.7.0-alpha.2"
  }
複製程式碼

npm install一下下,發現可以正常執行了:

使用React Hooks時遇到的錯誤提示


雖然問題已經解決了,但是還是不太明白其中的原理。希望瞭解原理的前輩能來解答一下,為什麼刪去^之後就可以正常使用Hooks?

感謝各位,希望能幫大家解決一點點剛使用Hooks時遇到小問題。

相關文章