Saya mencoba menggunakan kait reaksi untuk masalah sederhana
const [personState,setPersonState] = useState({ DefinedObject });
dengan dependensi berikut.
"dependencies": {
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-scripts": "3.0.0"
}
tapi saya masih mendapatkan kesalahan berikut:
./src/App.js
Baris 7:
React Hook "useState" disebut dalam fungsi "app" yang bukan komponen fungsi Bereaksi atau fungsi React Hook kustom bereaksi-kait / aturan-kaitBaris 39:
'status' tidak didefinisikan
tanpa-undefCari kata kunci untuk mempelajari lebih lanjut tentang setiap kesalahan.
Kode komponen di bawah ini:
import React, {useState} from 'react';
import './App.css';
import Person from './Person/Person';
const app = props => {
const [personState, setPersonSate] = useState({ person:[ {name:'bishnu',age:'32'}, {name:'rasmi',age:'27'}, {name:'fretbox',age:'4'} ], });
return (
<div className="App">
<h2>This is react</h2>
<Person name={personState.person[1].name} age="27"></Person>
<Person name={personState.person[2].name} age="4"></Person>
</div> );
};
export default app;
Komponen orang
import React from 'react';
const person = props => {
return(
<div>
<h3>i am {props.name}</h3>
<p>i am {props.age} years old</p>
<p>{props.children}</p>
</div>
)
};
export default person;
reactjs
react-hooks
Bishnu
sumber
sumber
Jawaban:
Cobalah untuk menggunakan huruf kapital 'app' seperti
Di Bereaksi, komponen harus dikapitalisasi, dan pengait kustom harus dimulai dengan
use
.sumber
Checks if the node is a React component name. React component names must always start with a non-lowercase letter.
.Saya merasa kami melakukan hal yang sama di Udemy.
Jika demikian, gunakan huruf besar saja
const app
Untuk
const App
Lakukan juga untuk
Untuk
Ini bekerja dengan baik untuk saya.
sumber
Sejauh yang saya tahu linter dimasukkan ke dalam paket ini. Dan itu mengharuskan kamu untuk komponend harus dimulai dari karakter Capital. Tolong diperiksa.
Namun bagi saya itu menyedihkan.
sumber
Gunakan huruf kapital pertama dalam nama fungsi.
sumber
Gunakan Aplikasi const daripada aplikasi const
sumber
Coba gunakan huruf besar untuk nama Aplikasi Anda
sumber
Anda mendapatkan kesalahan ini: "React Hook" useState "disebut dalam fungsi" App "yang bukan komponen fungsi Bereaksi atau fungsi React Hook kustom"
Solusi: Anda pada dasarnya perlu Memanfaatkan fungsi.
Sebagai contoh:
sumber
karakter pertama dari fungsi Anda harus huruf besar
sumber
Saya memiliki masalah yang sama. ternyata Memanfaatkan huruf "A" di "App" adalah masalahnya. Juga, jika Anda melakukan ekspor:
export default App;
pastikan Anda juga mengekspor nama "Aplikasi" yang sama.sumber
Komponen harus dimulai dengan huruf kapital. Ingat juga untuk mengubah huruf pertama di baris yang akan diekspor!
sumber
Apakah Anda memiliki impor yang benar?
sumber
Bereaksi nama komponen harus dikapitalisasi dan fungsi kait kustom harus dimulai dengan penggunaan kata kunci untuk mengidentifikasi sebagai fungsi kait reaksi.
Jadi, kapitalisasi komponen aplikasi Anda ke Aplikasi
sumber
Saya memiliki masalah yang sama, tetapi tidak dengan Aplikasi. Saya memiliki kelas khusus tetapi menggunakan huruf kecil untuk memulai nama fungsi dan juga menerima kesalahan.
Mengubah huruf pertama dari nama fungsi dan baris ekspor ke CamelCase dan kesalahan hilang.
dalam kasus saya hasil akhirnya adalah seperti:
ini menyelesaikan masalah saya.
sumber
Solusinya sederhana, "app" benar dan tulis "App" dengan karakter pertama dalam huruf besar.
sumber
Memanfaatkan aplikasi ke Aplikasi pasti akan berhasil.
sumber
Di JSX, nama tag huruf kecil dianggap sebagai komponen asli html. Untuk bereaksi mengenali fungsi sebagai komponen Bereaksi, perlu menggunakan huruf besar nama.
https://reactjs.org/docs/jsx-in-depth.html#html-tags-vs.-react-components
sumber
Ganti ini
dengan ini
sumber
Jadikan modal nama fungsi. Ini bekerja untuk saya.
sumber
Untuk kesalahan berikut, huruf besar komponen seperti huruf pertama, dan juga ekspor.
sumber
Solusinya, seperti yang sudah Yuki tunjuk, adalah dengan memanfaatkan nama komponen. Penting untuk dicatat bahwa tidak hanya komponen aplikasi "default" yang perlu dikapitalisasi, tetapi semua komponen:
Ini disebabkan oleh paket eslint-plugin-react-hooks, khususnya fungsi isComponentName () di dalam skrip RulesOfHooks.js.
Penjelasan resmi dari Hooks FAQs :
sumber
Pertama-tama, Anda perlu huruf besar FirstLetter dari komponen Anda, dalam aplikasi kasus Anda harus Aplikasi dan orang harus Orang .
Saya mencoba menyalin kode Anda dengan harapan menemukan masalah. Karena Anda tidak membagikan bagaimana Anda memanggil komponen App , saya hanya dapat melihat 1 cara untuk menghasilkan ini menjadi masalah.
Ini adalah tautan di CodeSandbox: Panggilan kait tidak valid .
Mengapa? Karena kode di bawah ini yang salah:
Seharusnya:
Untuk info lebih lanjut, Anda harus membaca Rule of Hooks - React
Semoga ini membantu!
sumber
Gunakan huruf kapital untuk menentukan nama komponen fungsional / React hooks custom komponen. "const 'app' haruslah const 'App'.
App.js
Person.js
[ReactHooks] [useState] [ReactJs]
sumber
Langkah-1: Ubah nama file src / App.js menjadi src / app.js
Langkah-2: Klik "Ya" untuk "Perbarui impor untuk app.js".
Langkah-3: Nyalakan kembali server.
sumber
Setiap kali bekerja dengan komponen fungsional Bereaksi, selalu simpan huruf pertama dari nama komponen dalam Huruf Besar untuk menghindari kesalahan React Hooks ini.
Dalam kasus Anda, Anda telah memberi nama komponen
app
, yang harus diubah menjadiApp
, seperti yang saya katakan di atas, untuk menghindari kesalahan React Hook.sumber
sumber
Dalam fungsi aplikasi Anda salah mengeja kata
setpersonSate
, melewatkan suratt
, jadi seharusnya begitusetpersonState
.Kesalahan :
Solusi :
sumber
Ini karena aturan ESLint untuk React Hooks. Temukan tautan aturan di sini:
Aturan ESLint untuk React Hooks
Sampai sekarang, aturan tersebut dijelaskan pada baris no. 44.
sumber
Jangan gunakan fungsi panah untuk membuat komponen fungsional.
Lakukan sebagai salah satu contoh di bawah ini:
Atau
Jika Anda memiliki masalah dengan
"ref"
(mungkin dalam loop), solusinya adalah menggunakanforwardRef()
:sumber