调用Alarm.setBuiltInAlarmStatus无法修改告警状态
Posted: 2025年 Jul 5日 17:35
- Tuya MiniApp IDE 版本信息:2.3.10
- App 应用版本信息:1.0.5
- @ray-js/ray, @ray-js/panel-sdk的版本 :1.10.0
- 移动设备信息:
- 相关代码:
上述代码为关键代码,屏蔽了一些项目敏感信息。通过上述代码,能获取到的Alarm列表并正确显示,其中一个id为"LLuN3IhnGAvWbFD3",点击关闭告警,从IDE中的日志也可以获知,能打印正确的。具体参考附件
Code: Select all
import React, { Fragment,useCallback, useEffect } from 'react';
import {Button, View } from '@ray-js/ray';
import { Card } from '@/components/card';
import { Title } from './components/title';
import { IconFont} from '@/components';
import { RadioGroup} from './components/radioGroup';
import { Text,Image } from '@ray-js/ray';
import Strings from '@/i18n';
import { useConfig } from './useConfig';
import { Dialog, Empty } from '@ray-js/smart-ui';
import Layout from '@/components/layout';
import { PopupView } from '@/components/popup';
import Styles from './index.module.less';
import { useProps } from '@ray-js/panel-sdk';
import { useActions } from '@ray-js/panel-sdk';
import { Switch, Divider } from '@ray-js/smart-ui';
import { useState } from 'react';
import { SmartAlarmAbility } from '@ray-js/panel-sdk';
import { getLangKey } from '@ray-js/ray';
import { HomeRes } from '@/res/images';
import { Slider,Popup,Picker } from '@ray-js/smart-ui';
export function Setting() {
const [alarmList,setAlarmList] = useState([]);
const Alarm = new SmartAlarmAbility();
// 初始化
useEffect(() => {
const init = async () => {
await Alarm.init();
const alarms = await Alarm.getBuiltInAlarmList();
updateAlarms(alarms);
}
init();
},[]);
//
function updateAlarms(alarms:any)
{
const maps = [];
alarms.foreach(item=>{
maps.push({
'name':item.i18nData.name['en'],
'id':item.id,
'enable':item.enable
})
});
setAlarmList(maps);
}
///设置状态
async function setAlarmStaus(id:string,status:boolean)
{
console.log("setAlarmStatus:",id,"disabled:",status);
try{
const [result,newAlarms] = await Alarm.setBuiltInAlarmEnable(id,status);
console.log("setAlarmStatus result:",result);
if(result){
updateAlarms(newAlarms);
}
}catch(e){
console.log("设置状态错误",e);
}
}
return (
<View>
{/** 忽略不相关代码 */}
{
alarmList.map((item,index)=>{
return (
<View key={index}>
<Text>{item.name}</Text>
<Switch checked={item.enable} onChange={(event)=>{setAlarmStaus(item.id,!event.detail)}}></Switch>
</View>
)
})
}
</View>
)
}
Code: Select all
- 日志信息:~错误日志或 IDE 运行日志等~ - 问题描述(复现步骤): - 预期结果:能通过Switch切换该警告的状态 - 实际结果:无法通过Switch切换