Dalam React, definisi fungsi tingkat tinggi adalah jika parameter yang diterima oleh fungsi tertentu adalah fungsi lain atau nilai kembalian dari pemanggilan masih berupa fungsi, maka fungsi yang ditentukan tersebut disebut fungsi tingkat tinggi umum; -fungsi pesanan Ada Promise, setTimeout, "arr.map()" dan seterusnya.
Lingkungan operasi tutorial ini: Sistem Windows 10, reaksi versi 17.0.1, komputer Dell G3.
Fungsi tingkat tinggi: Jika suatu fungsi memenuhi salah satu dari dua spesifikasi berikut, maka fungsi tersebut merupakan fungsi tingkat tinggi.
1. Jika parameter yang diterima fungsi A adalah suatu fungsi, maka A dapat disebut fungsi orde tinggi.
2. Jika nilai kembalian fungsi A masih berupa fungsi, maka A dapat disebut fungsi tingkat tinggi.
Fungsi tingkat tinggi yang umum meliputi: Promise, setTimeout, arr.map(), dll.
Contohnya adalah sebagai berikut:
Kasus berikut adalah fungsi tingkat tinggi
saveFormData = (event)=>{return ()=>{console.log('@');}}<form onSubmit={this.handleSubmit}>Nama Pengguna:<input onChange={this.saveFormData('username' ) } type="text" name="username"/>Kata Sandi: <input onChange={this.saveFormData('password')} type="password" name="password"/><button>Masuk</button> < /bentuk>a. this.saveFormData('username') menggunakan nilai kembalian saveFormData sebagai panggilan balik onChange, bukan saveFormData sebagai panggilan balik.
b. Jika Anda menggunakan this.saveFormData('nama pengguna'), maka fungsi penugasan saveFormData harus mengembalikan sesuatu ke onChange. Berikan nilai kembalian (fungsi yang dikembalikan) dari fungsi penugasan saveFormData ke onChange sebagai panggilan balik.
c. Jadi kita mencetak simbol '@' di fungsi pengembalian saveFormData, lalu nilai yang dicetak akan dikembalikan ke onChange, dan simbol @ akan dicetak saat memasukkan di kotak input.
d.Tipe data yang diteruskan oleh saveFormData sebenarnya adalah nama pengguna dan kata sandi.
e.Apa yang kita panggil saat memasukkan harus berupa fungsi return.Return adalah callback yang sebenarnya.React membantu saya meneruskan event saat memanggil kembali.Melalui event.target.value, kita bisa mendapatkan nilai yang kita output.
saveFormData = (dataType)=>{// console.log(dataType);return (event)=>{// console.log('@');console.log(dataType,event.target.value);}}f. Konten dapat berupa output. Kita dapat menggunakan setState untuk menyimpannya ke dalam state.
this.setState({[dataType]:event.target.value})