diff --git a/src/datetime-picker/index.js b/src/datetime-picker/index.js
index 7f0b7f561..a0de94b10 100644
--- a/src/datetime-picker/index.js
+++ b/src/datetime-picker/index.js
@@ -1,4 +1,6 @@
+import { ref } from 'vue';
import { createNamespace } from '../utils';
+import { usePublicApi } from '../composition/use-public-api';
import TimePicker from './TimePicker';
import DatePicker from './DatePicker';
@@ -10,15 +12,16 @@ export default createComponent({
...DatePicker.props,
},
- methods: {
- // @exposed-api
- getPicker() {
- return this.$refs.root.getPicker();
- },
- },
+ setup(props) {
+ const rootRef = ref();
- render() {
- const Component = this.type === 'time' ? TimePicker : DatePicker;
- return ;
+ usePublicApi({
+ getPicker: () => rootRef.value && rootRef.value.getPicker(),
+ });
+
+ return () => {
+ const Component = props.type === 'time' ? TimePicker : DatePicker;
+ return ;
+ };
},
});