Tengo un componente público (un componente de selección de región común que debe reutilizarse en muchas páginas de interfaz de usuario), ahora defino una función para devolver el elemento en una función pública, esta función que devuelve el componente de selección de región pública tiene este aspecto:
export const LazyOptions = (this) => { const optionLists =regionDict.REGION.map(function(item){ return ({ value: item, label: item, isLeaf: false, }); }); const [options, setOptions] = React.useState(optionLists); const onChange = (value, selectedOptions) => { var unique = value.filter(onlyUnique); this.setState({ formValues:{ province: unique.toString() } }); }; const loadData = selectedOptions => { const targetOption = selectedOptions[selectedOptions.length - 1]; targetOption.loading = true; // load options lazily setTimeout(() => { targetOption.loading = false; targetOption.children =regionDict.CITY[`${targetOption.label}`].map(function(itemc){ return ({ label: itemc, value: itemc, }); }); setOptions([...options]); }, 100); }; return <Cascader options={options} loadData={loadData} onChange={onChange} changeOnSelect style={{ width: 120 }}/>; };esta función invoca setState que siempre se ejecuta en el componente de la interfaz de usuario, no puedo aplicar esta función porque el método público no es el propietario. ¿Es posible pasar esto a la función y ejecutar el método setState? o ¿qué debo hacer para aplicar el setState correctamente en la función pública? Invoco la función así:
LazyOptions(this)parece que no pudo funcionar.