Eslint Выдает ошибку: не определять компоненты во время рендеринга

Я пытаюсь отобразить значки в панели навигации, но eslint выдает ошибку: не определять компоненты во время рендеринга.

Не определяйте компоненты во время рендеринга. React будет видеть новый тип компонента при каждом рендеринге и уничтожать узлы и состояние DOM всего поддерева (https://reactjs.org/docs/reconciliation.html#elements-of- Different-types). Вместо этого переместите определение этого компонента из родительского компонента «DrawerLayout» и передайте данные в качестве реквизита. Если вы хотите разрешить создание компонентов в реквизитах, установите для параметраallowAsProps значение true.eslintreact/no-unstable-nested-comments.

      <Drawer
        drawerContent = {CustomDrawerContent}
        screenOptions = {{
          headerStyle: {
            backgroundColor: '#171630',
          },
          headerTintColor: '#fff',
          drawerHideStatusBarOnOpen: true,
          drawerActiveBackgroundColor: '#171630',
          drawerActiveTintColor: '#fff',
          drawerLabelStyle: { marginLeft: -20 },
          headerRight: () => <HeaderRight onLogout = {onLogout} />, // at this line I am getting above error by eslint
        }}
      >

Я много пытался решить эту проблему, но у меня получилось только то, что я могу отключить eslint, как правило. Но я хочу знать, почему он выдает ошибку. можно ли обойтись без отключения eslint?

Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
2
0
112
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я узнал ответ, я создаю отдельный служебный файл и там переопределяю компонент следующим образом.

export const HeaderRight = (action, lib, icon, size, color) => (
  <View style = {{ marginLeft: 15, marginRight: 15 }}>
    <TouchableOpacity onPress = {action}>{IconComponent(lib, icon, size, color)}</TouchableOpacity>
  </View>
);

и для использования я использовал функцию вместо компонента

HeaderLeft(action, 'FontAwesome', 'star', 20, 'red');

Другие вопросы по теме

Проблема перехода на eslint 9.0.0
Проблема «В настоящее время используется версия TypeScript, которая официально не поддерживается @typescript-eslint/typescript-estree» после обновления Nuxt
Как предотвратить использование только чисел if/else условий (правило ESLint?): например. if (myNumber) { /* ... */ }
Плоский файл конфигурации с конфигурациями из устаревшей ошибки совместимости eslintrc
Невозможно обеспечить ограниченный импорт в проекте TypeScript, несмотря на настройку baseUrl и разрешение
Почему TypeScript предполагает, что объект документа всегда доступен?
Как показать все ошибки файлов в приложении реагирования с помощью eslint с помощью однострочного кода в сценариях в package.json?
Получение ошибки проверки no-var-requires
Включение рекомендуемой конфигурации TypeChecked приводит к тому, что линтер проверяет свой файл конфигурации и выдает ошибку
Проблема с ошибкой конфигурации none-ls с eslint_d