refactor(DatetimePicker): refactor with composition api

This commit is contained in:
chenjiahan 2020-09-08 17:38:38 +08:00
parent b17c67ab53
commit 60e08767b3

View File

@ -1,4 +1,6 @@
import { ref } from 'vue';
import { createNamespace } from '../utils'; import { createNamespace } from '../utils';
import { usePublicApi } from '../composition/use-public-api';
import TimePicker from './TimePicker'; import TimePicker from './TimePicker';
import DatePicker from './DatePicker'; import DatePicker from './DatePicker';
@ -10,15 +12,16 @@ export default createComponent({
...DatePicker.props, ...DatePicker.props,
}, },
methods: { setup(props) {
// @exposed-api const rootRef = ref();
getPicker() {
return this.$refs.root.getPicker();
},
},
render() { usePublicApi({
const Component = this.type === 'time' ? TimePicker : DatePicker; getPicker: () => rootRef.value && rootRef.value.getPicker(),
return <Component ref="root" class={bem()} {...this.$props} />; });
return () => {
const Component = props.type === 'time' ? TimePicker : DatePicker;
return <Component ref={rootRef} class={bem()} {...props} />;
};
}, },
}); });