HarmonyOS 鸿蒙Next:arkts语言,如何给@State修饰的number类型赋一个空值(null&undefined都不行)
HarmonyOS 鸿蒙Next:arkts语言,如何给@State修饰的number类型赋一个空值(null&undefined都不行)
这个页面-刚进入app,默认的页面会展示num的默认值0,如何给num的初始值设置为空啊,试过了null和undefined都不行,都会导致程序崩溃!
@Entry
@Component
struct Components_5 {
private fruits: string[] = ['apple', 'orange', 'peach', 'grape']
[@State](/user/State) txt: string = ''
[@State](/user/State) num: number = 0
build() {
Column() {
TextPicker({ range: this.fruits, selected: 1 }).defaultPickerItemHeight(30).width('80%').onChange((value: string, index: number) => {
this.txt = value
this.num = index
})
Text(this.txt).margin({ top: 30 })
Text(this.num.toString())
}.width('100%')
}
}
更多关于HarmonyOS 鸿蒙Next:arkts语言,如何给@State修饰的number类型赋一个空值(null&undefined都不行)的实战教程也可以访问 https://www.itying.com/category-93-b0.html
其实你是想在初始化,也就是第一次时Text(this.num.toString())
这里显示出来的是空,对吗?如果是,你可以这样处理一下:
@State num: number = -1
Text(this.num == -1 ? '' : this.num.toString())
更多关于HarmonyOS 鸿蒙Next:arkts语言,如何给@State修饰的number类型赋一个空值(null&undefined都不行)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
狼哥厉害!!!谢谢,
不客气,互相学习,
思路错了,用state都需要初始化,如果不要显示默认值的话,需要用别的方法。所以真正的问题在于,你的需求是什么?
谢谢,用狼哥的办法解决啦!
项目名称
- 状态:已上线
- 技术栈:Python, JavaScript, HTML, CSS
- 简介:
- 项目旨在提供一个高效的工作流管理工具。
- 支持用户自定义工作流程。
- 提供实时协作功能。
成员
- 张三
- 李四
- 王五
any也不行,给默认值都会报错!
@State num: number | string = '';
想起来了,用@state装饰的变量一定要初始化,这个是有要求的,
@State num: number | string = '' 这样写可以实现,但是有个问题,当我进入页面的时候,把指示器往下滑一个位置到apple,这个num不会显示出来,其他情况都正常,
- 基本信息 |
- 名称 | null
- 版本 | 1.0.0
- 作者 | John Doe
没有null类型的!不可以这样写!但是 @State num: number | string = ‘’ 这样写貌似可以!
写num:?number,
也不行,写法就会报错,
问题就在:还想使用@state,还不想初始化一个数值,
文档定义了使用@state
就必须初始化数值,
在HarmonyOS鸿蒙Next中,使用ArkTS语言时,@State
修饰的number
类型不能直接赋值为null
或undefined
,因为number
类型是值类型,不支持空值。如果需要表示可能为空的情况,可以使用undefined
或null
的替代方案。
一种常见的做法是将number
类型改为number | undefined
或number | null
,这样可以在需要时赋值为undefined
或null
。例如:
@State myNumber: number | undefined = undefined;
或者:
@State myNumber: number | null = null;
这样,myNumber
就可以在需要时被赋值为undefined
或null
,同时仍然可以正常存储number
类型的值。
如果确实需要表示一个空的number
状态,可以考虑使用一个特殊的值(如NaN
或0
)来表示空状态,但这取决于具体的业务逻辑。
总结:number
类型本身不支持null
或undefined
,但可以通过联合类型number | undefined
或number | null
来实现类似的效果。