Это правда и для функциональных компонентов?
Ну, на самом деле в вашем коде нет функционального компонента.И все, что вы делаете в функции, которая вызывается очень часто (например, render()
), приводит к снижению производительности, независимо от того, является ли это функцией или объявлением или вызовом переменной.Другое дело, что это уменьшение имеет значение.
И если да, есть ли другой способ передать динамическую информацию (в данном случае элемент) в обратный вызов?
Вы могли бы .bind(...)
это:
onClick = {console.log.bind(console, item) }
но на самом деле, вы заметили какую-либо задержку при повторном рендеринге?Вероятно, нет, и если так, то это не вызвано объявлением функции.Пишите код, который выглядит красиво для вас, не оптимизируйте его для компилятора, пусть компилятор сделает это.
, но некоторое время назад я узнал, что вам следует избегать объявления функции внутри самого компонента JSX
Тебе не стоит этого избегать, предпочтительнее, если возможно, другие способы.В этом случае нет лучшего способа, так что иди с ним.