Я получил это сообщение об обмене от 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",
Есть лилюбое другое решение?