Как избавиться от дублированного контента

Все классы в нашем проекте ReactJs разработаны путем расширения класса Component.

class X extends Component{
...
 getType = (type) => {
   ...
 }
}

class Y extends Compnent{
....
  getType = (type) => {
  --
 }
}

Недавно некоторым классам понадобился метод getType, который был добавлен в отдельные классы. На данный момент сниффер кода отказывается от этого кода из-за дублирования кода.

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

Вопрос, который я хотел бы задать:

Каков наилучший подход к решению этой проблемы без слишком большой адаптации каждого класса.

Если они оба унаследованы от Component, вы можете просто добавить к прототипу Component, а затем переопределить его. Кроме того, вы говорите, что getType() одинаково для всех? Это зависит от this? Если нет, то не могли бы вы просто извлечь его за пределы класса?

Colin Ricardo 25.03.2019 11:21

@Colin, спасибо за ваш ответ ... не могли бы вы привести мне пример или указать мне правильное направление ... getType одинаков для каждого и не использует эту ссылку

Christian Felix 25.03.2019 11:25

Что getType должен делать? Что такое type?

Colin Ricardo 25.03.2019 11:26

просто используется для возврата некоторого элемента div в зависимости от переданного аргумента. Аргумент зависит от класса, который используется в данный момент. пусть тип = this.getType (someDataForType);

Christian Felix 25.03.2019 11:29

Как аргумент зависит от класса, откуда он берется? Можете ли вы добавить весь соответствующий код?

Colin Ricardo 25.03.2019 11:30

Каждый класс использует вызов API. Затем в методе der render() мы собираем значения ответов.

Christian Felix 25.03.2019 11:32

Лучше всего использовать HOC для этого reactjs.org/docs/higher-order-components.html

UjinT34 25.03.2019 11:57

Не совсем уверен, что вы на самом деле пытаетесь сделать, поэтому я не могу помочь - извините.

Colin Ricardo 25.03.2019 12:01

@ UjinT34, это именно то, что я ищу. Спасибо.

Christian Felix 25.03.2019 12:02
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
9
30
0

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