|
@@ -36,27 +36,16 @@ export default Dropdown = ({
|
|
|
const [visible, showDialog] = useState(false);
|
|
const [visible, showDialog] = useState(false);
|
|
|
const [selected, changeValue] = useState('');
|
|
const [selected, changeValue] = useState('');
|
|
|
const [currentIndex, setCurrent] = useState(0);
|
|
const [currentIndex, setCurrent] = useState(0);
|
|
|
|
|
+
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
if (value !== selected) {
|
|
if (value !== selected) {
|
|
|
- if (nameKey && valueKey) {
|
|
|
|
|
- for (var i = 0; i < list.length; i++) {
|
|
|
|
|
- let item = list[i];
|
|
|
|
|
- if (item[valueKey] == value) {
|
|
|
|
|
- changeValue(prefixText+item[nameKey]+suffixText);
|
|
|
|
|
- if (list.length > 20) {
|
|
|
|
|
- setCurrent(i > 5 ? i - 4 : 0);
|
|
|
|
|
- }
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- } else {
|
|
|
|
|
- changeValue(prefixText+value+suffixText);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ changeItem();
|
|
|
}
|
|
}
|
|
|
}, [value, []]);
|
|
}, [value, []]);
|
|
|
|
|
+
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
if (autoSelect && list.length > 0) {
|
|
if (autoSelect && list.length > 0) {
|
|
|
- if (!value) {
|
|
|
|
|
|
|
+ if (value == undefined) {
|
|
|
const item = list[0];
|
|
const item = list[0];
|
|
|
/*if (nameKey) {
|
|
/*if (nameKey) {
|
|
|
changeValue(item[nameKey]);
|
|
changeValue(item[nameKey]);
|
|
@@ -66,9 +55,28 @@ export default Dropdown = ({
|
|
|
if (onChange) {
|
|
if (onChange) {
|
|
|
onChange(valueKey ? item[valueKey] : item, 0)
|
|
onChange(valueKey ? item[valueKey] : item, 0)
|
|
|
}
|
|
}
|
|
|
|
|
+ } else {
|
|
|
|
|
+ changeItem();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}, [list]);
|
|
}, [list]);
|
|
|
|
|
+
|
|
|
|
|
+ const changeItem = () => {
|
|
|
|
|
+ if (nameKey && valueKey) {
|
|
|
|
|
+ for (var i = 0; i < list.length; i++) {
|
|
|
|
|
+ let item = list[i];
|
|
|
|
|
+ if (item[valueKey] == value) {
|
|
|
|
|
+ changeValue(prefixText+item[nameKey]+suffixText);
|
|
|
|
|
+ if (list.length > 20) {
|
|
|
|
|
+ setCurrent(i > 5 ? i - 4 : 0);
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ changeValue(prefixText+value+suffixText);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
const showList = () => {
|
|
const showList = () => {
|
|
|
Keyboard.dismiss();
|
|
Keyboard.dismiss();
|
|
|
showDialog(true);
|
|
showDialog(true);
|