From 60e08767b313e90b13c6a4a3246a113367ed09a5 Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Tue, 8 Sep 2020 17:38:38 +0800 Subject: [PATCH] refactor(DatetimePicker): refactor with composition api --- src/datetime-picker/index.js | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) 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 ; + }; }, });