Как подсказывает Эстер Куан , карри - это путь.Скорее всего, если вы используете динамически созданные функции, зависящие от изменений переменных.Тогда время, затрачиваемое на создание этих функций, намного меньше, чем время, затрачиваемое на рендеринг компонентов при каждом изменении переменных.С точки зрения эффективности, приоритет должен заключаться в том, чтобы минимизировать переменные изменения, чтобы свести к минимуму повторные отображения задолго до постоянного восстановления функций.
Если, однако, вы уверены, что некоторые функции согласованы, даже через повторные отображения, и не хотите, чтобы они были повторно объявлены, вот как вы можете этого добиться:
class Component extends React.Component {
functionName = (e) => {
const { variable } = this.props
// run logic on the event and variable
}
render() {
// some code
onPress={this.functionName}
}
}
Вы заметите с помощьюэтот подход functionName
объявляется только один раз.
Недостаток производительности в этом подходе состоит в том, что теперь вам нужно создать другой компонент (и, возможно, методы жизненного цикла, которые идут с классом), чтобы передать variable
как опора, чтобы обойти необходимость в карри.