Почему возникает 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 не изменяются же