Относительно ошибки проверки кода lint:
error Must use destructuring props assignment react/destructuring-assignment
Я новичок в концепции свойств деструкции, и я немного смущен тем, как я должен использовать подход деструкции к следующему коду:
constructor(props) {
super(props);
this.state = {
clickedFirstTime: !this.props.showDefault,
};
}
Обратите внимание на других людей, которые нашли это в Google. Я прочитал следующие ресурсы, которые помогут мне понять, что такое деструктуризация, но я просто не могу понять, как это сделать в этом случае:
Я чувствую, что у меня должен быть лучший дополнительный вопрос, но все, о чем я могу думать, это: правда? Зачем было добавлено это правило, если оно так плохо?
Ссылка на то, как это сделать: stackoverflow.com/questions/51222448/…, ответ от Almaju
constructor({...props}) {
super(props);
this.state = {
clickedFirstTime: !this.props.showDefault,
};
}
Хотя технически это работает, я думаю, что распространение реквизита здесь — плохая идея...
вы можете добавить все реквизиты, которые вам нужны, это просто пример того, как работает спред {showDefault, ...props}
Я думаю, что это более элегантно, чем этот const { showDefault } = this.props;
Правило требует, чтобы вы никогда не писали this.props.…
. В этом случае он ищет
constructor(props) {
super(props);
const { showDefault } = this.props;
this.state = {
clickedFirstTime: !showDefault,
};
}
Но на самом деле ваш код в порядке, и вам следует просто отключить правило, если оно вас раздражает.
Я еще не очень хорошо стою на ногах, поэтому я предпочитаю придерживаться раздражающего правила, пока я действительно не узнаю, что меня раздражают, а не ошибаются или ленятся. Работа с этим заставила меня понять деструктурирование и распространение реквизита. Так что я думаю, это было хорошо, что правило было там;)
Вы не должны использовать здесь деструктурирование. Отключите правило, слишком много ложных срабатываний.