В React определение функции высшего порядка заключается в том, что если параметр, полученный указанной функцией, является другой функцией или возвращаемое значение вызова по-прежнему является функцией, то указанная функция называется функцией высшего порядка, общей высшей; Функции -order Есть Promise, setTimeout, "arr.map()" и так далее.
Операционная среда этого руководства: система Windows 10, версия 17.0.1, компьютер Dell G3.
Функция высшего порядка: если функция соответствует любой из следующих двух спецификаций, то эта функция является функцией высшего порядка.
1. Если параметр, полученный функцией А, является функцией, то А можно назвать функцией высшего порядка.
2. Если возвращаемое значение функции A по-прежнему является функцией, то A можно назвать функцией более высокого порядка.
К общим функциям высшего порядка относятся: Promise, setTimeout, arr.map() и т. д.
Примеры следующие:
Следующие случаи являются функциями более высокого порядка.
saveFormData = (event)=>{return ()=>{console.log('@');}}<form onSubmit={this.handleSubmit}>Имя пользователя:<input onChange={this.saveFormData('username') } type="text" name="username"/>Пароль: <input onChange={this.saveFormData('password')} type="password" name="password"/><button>Войти</button> < /форма>a. this.saveFormData('username') использует возвращаемое значение saveFormData в качестве обратного вызова onChange, а не saveFormData в качестве обратного вызова.
б. Если вы используете this.saveFormData('username'), то функция присваивания saveFormData должна вернуть что-то в onChange. Передайте возвращаемое значение (возвращаемую функцию) функции присваивания saveFormData в onChange в качестве обратного вызова.
в. Итак, мы печатаем символ «@» в функции возврата saveFormData, затем напечатанное значение будет возвращено в onChange, а символ @ будет напечатан при вводе в поле ввода.
d. Тип данных, передаваемый saveFormData, на самом деле является именем пользователя и паролем.
д. То, что мы вызываем при вводе, должно быть функцией возврата. Return — это настоящий обратный вызов. React помогает мне передать событие при обратном вызове. Через event.target.value мы можем получить выводимое значение.
saveFormData = (dataType)=>{// console.log(dataType);return (event)=>{// console.log('@');console.log(dataType,event.target.value);}}f. Содержимое можно вывести. Мы можем использовать setState, чтобы сохранить его в состоянии.
this.setState({[dataType]:event.target.value})