ncpub-multipage-demo-2005/src/gl/public/components/FormItems/SelectItem.js

49 lines
1.2 KiB
JavaScript
Raw Normal View History

2025-03-04 09:28:41 +08:00
/*/b5PGsYdRV84Wk0rw0ORzo2RLaclWEJDU5xCBIw58jc=*/
2024-12-20 17:09:51 +08:00
import React, { Component } from 'react';
import {high,base,ajax } from 'nc-lightapp-front';
import {FISelect} from '../base'
const FIOption = FISelect.FIOption;
export default class SelectItem extends Component {
state = {
items: this.props.items(),
defaultValue: this.props.defaultValue,
value: this.props.defaultValue
}
handleChange = value => {
const { onChange } = this.props;
this.setState({
value: value
});
if (onChange) {
onChange(value);
}
}
componentWillReceiveProps(nextProp) {
if (nextProp.defaultValue !== this.state.defaultValue || nextProp.items() != this.state.items) {
this.setState({
items: nextProp.items(),
defaultValue: nextProp.defaultValue,
value: nextProp.defaultValue
});
}
}
render() {
let { items } = this.state;
let { value, defaultValue, ...others } = this.props;
return <FISelect {...others} value={ this.state.value } onChange={ this.handleChange } >
{ items.map((item, i) => <FIOption value={String(item.value)} key={i} >{item.label}</FIOption>) }
</FISelect>
}
}
2025-03-04 09:28:41 +08:00
/*/b5PGsYdRV84Wk0rw0ORzo2RLaclWEJDU5xCBIw58jc=*/