Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

109
Views
Javascript Promise.all results from fetching multiple apis not rendering in the React Native FlatList

I am using Promise.all in order to fetch multiple apis.

const ListScreen = () => {

const first = fetch('https://EXAMPLEAPI').then(resp => resp.json())
const second = fetch('https://EXAMPLEAPI').then(resp => resp.json())
const third = fetch('https://EXAMPLEAPI').then(resp => resp.json())

const retrieveAll = async function () {
    let results = await Promise.all([first, second, third])

When console.log(results), I get all arrays of objects from apis

The problem is that when I create a FlatList, I don't get anything to be rendered on the screen(blank)

const retrieveAll = async function () {
    let results = await Promise.all([first, second, third])

    return (
        <FlatList
            keyExtractor={item => item.title}
            data={results}
            renderItem={({ item }) => {
                return <Text>{item.title}</Text>
            }}
        />
    )
};

}

export default ListScreen;

What am I doing wrong?

Please help. :(

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

You need to re-render the component, for that you will have to use react Hooks.

This is how the component will look like

const RetrieveAll = function () {
    const [ results, setResults ] = useState([])
    useEffect( () => {
        Promise.all([first, second, third])
        .then(response => {
           setResults(response)
        })

    }, [])

    return (
        <FlatList
            keyExtractor={item => item.title}
            data={results}
            renderItem={({ item }) => {
                return <Text>{item.title}</Text>
            }}
        />
    )
};

Usage

<RetrieveAll />

And try not to create async JSX elements.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!