Документирование ошибок потока (потокового типа)

Я неоднократно сталкивался с ошибками типа потока, о которых я не нашел никакой информации через duckduckgo или google.

Один недавний пример:

    statics of MyView [1] is not a polymorphic type.
      6│   navigation: any,
      7│ }
      8│
 [1]  9│ export default class MySubView extends MyView <Props> {
     10│   succesfullyChanged = () => {
     11│     this.setState({
     12│       loading: false,

Мой вид:

type State = {
  \\ lots of state
};


export default class MyView extends React.Component <{}, State> {
  \\..
};

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

Я знаю о поток документов. Однако они не отображаются при поиске конкретных ошибок.

Я ищу что-то вроде обширного потоковая документация, где каждое правило / ошибка документировано с примерами.

Редактировать: Я нашел документацию по Generyc типы, которые кажутся полиморфными типами. Теперь кажется, что поток ошибок моего <Props> для универсального типа?

Похоже, вы не объявили MyView должным образом, но без дополнительной информации об этом сложно сказать. Я бы также сказал, что создание подкласса компонента React в целом - плохая идея. Используйте композицию, а не наследование.

loganfsmyth 15.03.2018 21:29

Спасибо за совет. Вид вроде работает. Жалуется только поток.

David Schumann 15.03.2018 21:31

В общем, есть много кода, который будет работать, но сделает Flow недовольным. Вам нужно будет показать нам, как определяется MyView, чтобы за это можно было ответить.

loganfsmyth 15.03.2018 22:04

Спасибо за помощь. Я добавил определение MyView.

David Schumann 15.03.2018 22:10
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
70
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Если вы ожидаете подкласса MyView и у него другой Props, вам необходимо сделать его полиморфным следующим образом:

export default class MyView<Props> extends React.Component<Props, State> {

который объявляет, что класс MyView является полиморфным и может принимать набор свойств, которые просто передаются в React.Component. Что у тебя было с

export default class MyView extends React.Component<{}, State> {

объявляет его как класс с реквизитами, ограниченными пустым объектом, поэтому он не имеет пригодного для использования .props. Если бы это было то, что вы хотели, вы бы сделали class MySubView extends MyView {, потому что не было бы никаких свойств для настройки.

Не могли бы вы подробнее рассказать о своем комментарии к исходному вопросу о том, что использование наследования с реагирующими нативными компонентами - плохая идея? Есть ли побочные эффекты, которые я должен учитывать при этом, или в чем вы видите проблему?

David Schumann 04.04.2018 09:19

Я бы сослался на основные документы React: reactjs.org/docs/composition-vs-inheritance.html

loganfsmyth 04.04.2018 09:23

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