Почему возникает Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed при рендеринге?

Вот мой код:

  return (
<>
  <Text Ag={AgEnum.H3} style={{textAlign: "center"}}>Просмотр устройства</Text>
  {BLEStore.connecting && (<Text Ag={AgEnum.Subtitle1} style={{textAlign: "center"}}>Подключение...</Text>)} <- убираю
  {BLEStore.deviceID && <Text Ag={AgEnum.Subtitle1} style={{textAlign: "center"}}>ID: {BLEStore.deviceID}</Text>}
  {!BLEStore.deviceID && <Button title={'Поиск'} style={{margin: 3}} onPress={() => goToSearchDevices()} />}
  {BLEStore.deviceID && !BLEStore.device && !BLEStore.connecting && <Button title={'Подключить'} style={{margin: 3}} onPress={() => connectDevice()} />} <- удаляю
  {BLEStore.device && <Button title={'Отключить'} style={{margin: 3}} onPress={() => disconnectDevice()} />}

  {BLEStore.deviceInfo &&
    <View style={[styles.infoContainer]}>
        <Text Ag={AgEnum.Subtitle1} style={{textAlign: "left"}}>ID Устройства: {BLEStore.deviceInfo.deviceId.toString()}</Text>
        <Text Ag={AgEnum.Subtitle1} style={{textAlign: "left"}}>Заряд батареи: {BLEStore.deviceInfo.deviceBatteryValue.toString() + '%'}</Text>
        <Text Ag={AgEnum.Subtitle1} style={{textAlign: "left"}}>Версия прошивки: {BLEStore.deviceInfo.deviceMainVersion.toString() + '.' + BLEStore.deviceInfo.deviceSubVersion.toString()}</Text>
        <Text Ag={AgEnum.Subtitle1} style={{textAlign: "left"}}>Версия чипа: {BLEStore.chipScheme.toString()}</Text>
    </View>
  }

  {BLEStore.waitingData && (<Text Ag={AgEnum.Subtitle1} style={{textAlign: "center"}}>Получение истории...</Text>)} <- убираю
  {BLEStore.device && !BLEStore.waitingData && <Button title={'Вся история'} style={{margin: 3}} onPress={() => getHistoryAll()} />} <- убираю
</>

);

export class BLEStore {
constructor() {
makeAutoObservable(this);

this.deviceIDService = new DeviceIDService();
this.BLEService = new BLEService();
this.dataUnpack = new DataUnpack();
}

private deviceIDService: DeviceIDService;
private BLEService: BLEService;
private dataUnpack: DataUnpack;

queue: {dataType: number, value: number[]}[] = [];
waitingData: boolean = false;
buffer: number[] = [];

deviceID: Nullable<string> = null;
connecting: boolean = false;

В консоли ошибки:

[MobX] Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: [email protected]

[MobX] Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: [email protected]

Если убираю указанные строчки - ошибка пропадает. Почему так может быть? Здесь waitingData и connecting не изменяются же


Ответы (0 шт):