Estoy tratando de crear una selección en la que tomo datos de dos api, comparo estos datos y muestro los resultados en la selección.
mi selección es Paginate Select, por lo que necesito buscar si hay otros datos cuando llamo a la API
const SelectAsyncPaginate = props => { const [realmScelto, setRealmScelto] = useState(null); const [listaRealm, setListaRealm] = useState([]); useEffect(() => { setRealmScelto(props.realmScelto); }, [props.realmScelto]); const loadOptions = async (searchQuery, loadedOptions, { page }) => { const response = await fetch( `${apiUrl}?page=${page}&size=20&deletedDate.specified=false${searchQuery.length > 3 ? `&appDesapplicazione.contains=${searchQuery}` : '' }` ) const response2 = await fetch( `${apiUrlRealm}?page=${page}&size=20&deletedDate.specified=false` ) const optionToShow = await response.json(); const optionToShow2 = await response2.json(); console.log("optionToShow1", optionToShow) console.log("optionToShow2", optionToShow2) const notPresent = optionToShow2.filter(ra => { return !optionToShow.some(rua => rua.realm.id === ra.id && rua.user.perCod === props.persona.perCod.perCod); }); setListaRealm(previousListRealm => [...previousListRealm, ...notPresent]); console.log("listaRealm", listaRealm) return { options: listaRealm, hasMore: listaRealm.length >= 1, additional: { page: searchQuery ? 2 : page + 1, }, }; }; const onChange = option => { if (typeof props.onChange === 'function') { props.onChange(option); } }; return ( <AsyncPaginate value={props.value} loadOptions={loadOptions} getOptionValue={option => option.realm.id} getOptionLabel={option => option.realm.realmId} onChange={onChange} isSearchable={true} placeholder="Seleziona Realm" additional={{ page: 0, }} /> ); }; Si uso solo una llamada a la API, funciona, el problema es cuando llamo a la segunda API porque tengo un bucle de llamadas a la API y no controla si hay otra página y nunca actualiza la listaRealm
¿Cómo puedo hacer en su opinión?
Lo que me gustaría obtener es como:
- Llamada API (apiUrl)
1.1 Comprobar si hay otra página
- Llamada API (apiUrlRealm)
2.2 Comprobar si hay otra página
- Comparar los dos resultados para obtener resultado