43 lines
1.2 KiB
Java
43 lines
1.2 KiB
Java
import React, { PureComponent } from 'react';
|
|
import { Select } from 'antd';
|
|
import DictionaryContext from './DictionaryContext';
|
|
|
|
export default class DictionarySelect extends PureComponent {
|
|
renderSelect(children) {
|
|
// const { initialValue } = this.props['data-__meta'];
|
|
const propsX = {
|
|
...this.props,
|
|
};
|
|
if (propsX.value !== undefined || propsX.value !== null) {
|
|
propsX.value = `${propsX.value}`;
|
|
}
|
|
if (propsX.value === 'undefined' || propsX.value === 'null') {
|
|
delete propsX.value;
|
|
}
|
|
return <Select {...propsX}>{children}</Select>;
|
|
}
|
|
|
|
render() {
|
|
const { dicKey } = this.props;
|
|
return (
|
|
<DictionaryContext.Consumer>
|
|
{context => {
|
|
const dicValues = context[dicKey];
|
|
let nodes = [];
|
|
if (dicValues) {
|
|
nodes = Object.keys(dicValues).map(value => {
|
|
const text = dicValues[value];
|
|
return (
|
|
<Select.Option key={value} value={value}>
|
|
{text}
|
|
</Select.Option>
|
|
);
|
|
});
|
|
}
|
|
return this.renderSelect(nodes);
|
|
}}
|
|
</DictionaryContext.Consumer>
|
|
);
|
|
}
|
|
}
|