Все классы в нашем проекте ReactJs разработаны путем расширения класса Component.
class X extends Component{
...
getType = (type) => {
...
}
}
class Y extends Compnent{
....
getType = (type) => {
--
}
}
Недавно некоторым классам понадобился метод getType, который был добавлен в отдельные классы. На данный момент сниффер кода отказывается от этого кода из-за дублирования кода.
Я знаю, я мог бы легко создать собственный класс с этим методом внутри, но это реализует то, что все классы должны быть расширены из этого.
Вопрос, который я хотел бы задать:
Каков наилучший подход к решению этой проблемы без слишком большой адаптации каждого класса.
@Colin, спасибо за ваш ответ ... не могли бы вы привести мне пример или указать мне правильное направление ... getType одинаков для каждого и не использует эту ссылку
Что getType должен делать? Что такое type?
просто используется для возврата некоторого элемента div в зависимости от переданного аргумента. Аргумент зависит от класса, который используется в данный момент. пусть тип = this.getType (someDataForType);
Как аргумент зависит от класса, откуда он берется? Можете ли вы добавить весь соответствующий код?
Каждый класс использует вызов API. Затем в методе der render() мы собираем значения ответов.
Лучше всего использовать HOC для этого reactjs.org/docs/higher-order-components.html
Не совсем уверен, что вы на самом деле пытаетесь сделать, поэтому я не могу помочь - извините.
@ UjinT34, это именно то, что я ищу. Спасибо.





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