Необходимо использовать ошибку назначения деструктурирующих реквизитов в конструкторе

Относительно ошибки проверки кода lint:

error  Must use destructuring props assignment  react/destructuring-assignment

Я новичок в концепции свойств деструкции, и я немного смущен тем, как я должен использовать подход деструкции к следующему коду:

  constructor(props) {
    super(props);
    this.state = {
      clickedFirstTime: !this.props.showDefault,
    };
  }

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

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

Bergi 12.12.2020 18:49

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

FMaz008 12.12.2020 20:18

Ссылка на то, как это сделать: stackoverflow.com/questions/51222448/…, ответ от Almaju

FMaz008 12.12.2020 20:25
Умерло ли 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 без написания...
0
3
1 182
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

  constructor({...props}) {
    super(props);
    this.state = {
      clickedFirstTime: !this.props.showDefault,
    };
  }

Хотя технически это работает, я думаю, что распространение реквизита здесь — плохая идея...

FMaz008 12.12.2020 21:01

вы можете добавить все реквизиты, которые вам нужны, это просто пример того, как работает спред {showDefault, ...props}

Artem Bespolov 12.12.2020 21:09

Я думаю, что это более элегантно, чем этот const { showDefault } = this.props;

Artem Bespolov 12.12.2020 21:11
Ответ принят как подходящий

Правило требует, чтобы вы никогда не писали this.props.…. В этом случае он ищет

constructor(props) {
  super(props);
  const { showDefault } = this.props;
  this.state = {
    clickedFirstTime: !showDefault,
  };
}

Но на самом деле ваш код в порядке, и вам следует просто отключить правило, если оно вас раздражает.

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

FMaz008 12.12.2020 21:03

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