我在初始化朗读控件的时候,控制台日志显示初始化成功了,但是按钮图标的状态(isInit)没有变化,看起来图标没激活。以下是我的初始化代码:
const readerParam: TextReader.ReaderParam = {
isVoiceBrandVisible: true,
businessBrandInfo: {
panelName: '小艺朗读'
}
}
try {
await TextReader.init(getContext(this), readerParam);
this.isInit = true;
} catch (err) {
console.error(`init 失败:`, err);
}
是不是需要放在某个生命周期里或者配合其他 UI 的刷新?麻烦帮我看看。
你的逻辑是对的,但状态更新如果写在组件外部作用域可能不会触发 UI 刷新。确保以下几点:
this.isInit 是 @State 修饰的;
init() 方法是写在组件类内部的;
初始化应写在 aboutToAppear() 或 onWindowStageCreate() 中,确保 UI 渲染完再赋值;