Предупреждение консоли Mobx - PullRequest
0 голосов
/ 27 марта 2019

Я получил это сообщение об обмене от Mobx.

[mobx.array] Попытка прочитать индекс массива (0), выходящий за пределы (0).Пожалуйста, проверьте длину в первую очередь.MobX

@observable checks = {
      deviceType: ['phone','laptop', ...],
      deviceTypeChecks: [],
      ...
    }

@action
selectAllChecks = (target, type) => {
     const targetChecks = []
     if (this.checks[target].length !== this.checks[type].length) {
        this.checks[target].forEach(el => targetChecks.push(el))
      }
     this.checks[type] = targetChecks
}

не может отслеживать не связанные индексы. Как я могу удалить это предупреждение?Тем не менее, этот код не имеет проблем.Это работает хорошо.

Я использую функцию selectAllChecks с помощью функции onChange.

const {
  deviceType,
  deviceTypeChecks
} = this.props.store.checks

<label className="mr10">
          <input
            type="checkbox"
            checked={deviceType.length === deviceTypeChecks.length}
            onChange={() =>
              selectAllChecks('deviceType', 'deviceTypeChecks')
            }
          />
          <span>All device type</span>
        </label>

У меня 4 версии для IE.

"mobx": "^4.1.0",
"mobx-react": "^5.2.6",

Есть лилюбое другое решение?

1 Ответ

0 голосов
/ 27 марта 2019

Что произойдет, если вы измените @action на это:

@action
selectAllChecks = (target, type) => {
      this.checks[type] = this.checks[target].map((value) => value);
}

Это все еще показывает ошибку mobx out of bounds?

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