我在项目中尝试使用 CalendarPickerDialog.show() 弹出日历弹窗,结果点击按钮后啥也没出现,也没有报错。代码如下:
Button("打开日历").onClick(() => {
CalendarPickerDialog.show();
});
有没有人知道是不是哪里写错了?要不要传默认日期或者什么 UI 上下文?
我在项目中尝试使用 CalendarPickerDialog.show() 弹出日历弹窗,结果点击按钮后啥也没出现,也没有报错。代码如下:
Button("打开日历").onClick(() => {
CalendarPickerDialog.show();
});
有没有人知道是不是哪里写错了?要不要传默认日期或者什么 UI 上下文?
你的代码缺少必要的参数。CalendarPickerDialog.show()
需要传入一个配置对象才能正常显示。
Button("打开日历").onClick(() => {
CalendarPickerDialog.show({
selected: new Date(), // 默认选中的日期
onAccept: (value: DatePickerResult) => {
console.info("选择的日期: " + JSON.stringify(value));
},
onCancel: () => {
console.info("取消选择");
}
});
});
主要参数说明:
selected
: 设置默认选中的日期,通常传入 new Date()
表示当前日期onAccept
: 用户确认选择时的回调函数,会返回选中的日期信息onCancel
: 用户取消时的回调函数13 回答12.7k 阅读
7 回答1.8k 阅读
3 回答1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
2 回答1.8k 阅读
6 回答717 阅读✓ 已解决
据我所知,CalendarPickerDialog 依赖 UI 上下文环境执行,不能在 UIContext 不明确的地方调用。你可以通过组件类(如 @Entry 组件中)调用它,否则可能无法正确显示。
此外,建议显式传入 selected 日期并加个 onAccept 看看是否触发,比如:
确保你是在组件内部、事件中执行的即可。