Реагировать Eslint деструктуризация-назначение - PullRequest
0 голосов
/ 13 ноября 2018

Я использую правило eslint react/destructuring-assignment, которое выбрасывает. Как я могу это разрушить?

getStuff(model = this.state.model) {
   // some stuff
}

Ответы [ 3 ]

0 голосов
/ 13 ноября 2018

ESLINT не позволяет использовать this.state.model и предлагает вам использовать деструктурирование:

const { model: stateModel } = this.state
getStuff(model = stateModel) {

Но, я боюсь, так как он внутри компонента класса реакции.Таким образом, вы не можете определить const или var перед определением метода.Вы должны отключить eslint для линии:

getStuff(model = this.state.model) { // eslint-disable-line

В качестве альтернативы, вы можете использовать как:

 getStuff(model) {
   const { model: stateModel } = this.state
   const passedModel = model ? model : stateModel

   // then work through passedModel
}

Хмм, я думаю, это должно сделатьтрюк:

getStuff({state: {model}} = this) {

Но, честно говоря, я никогда не использовал такой.Просто попробуйте и дайте мне знать.

Обновление :

Вы также можете использовать как:

getStuff(model) {
  const { model: stateModel } = this.state || { model: model }
  console.log(stateModel)

Или просто:

getStuff(model) {
  const { model } = this.state || { model }
  // ----------------- similar to { model: model }
  console.log(model)
0 голосов
/ 13 ноября 2018

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

getStuff(passedModel) {
   const { model } = this.state
   const toUseModelInMethod = passedModel || model
   // or 
   const toUseModelInMethod = passedModel ? passedModel : model
}

Если вы просто хотите получить модель из этого. Это просто

getStuff() {
   const { model } - this.state
}

Также вы можете передать свое состояние методу

getStuff({ model }) {...}
this.getStuff(this.state) // linter is not happy
// that's is better
getStuff(model){...}
const { model } = this.state
this.getStuff(model)
0 голосов
/ 13 ноября 2018

Ваш пример не разрушает. Функция будет выглядеть так:

function getStuff({ property1, property2 }) {
...
}

Приведенный выше пример извлекает property1 и property2 из любого объекта, переданного данной функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...