mardi 9 avril 2019

How to select random object from array with React Hooks?

I don't know why my function not working. I wan't to display random citites from array? But if I click button then show me error "AppHooks.js:15 Uncaught TypeError: Cannot read property 'length' of undefined".

What I do wrong?

import React, {useState} from 'react';


export default function AppHooks () {
    const [cities, setCities] = useState([
        {
            nameCity: 'Kraków'
        },
        {
            nameCity: "Kielce"
        }
    ])

    function randomCities (e, cities) {
        let len = cities.length;
        // let randCiti = cities[Math.floor(Math.random() * cities.length)];
        setCities(cities[Math.floor(Math.random() * len)]);
        return cities
    }
    let citi = cities.map((cit, i) => {
        return(
        <div key={i}>
            {cit.nameCity}
        </div>)
        }
    )

    console.log(cities[0]);
    return(
        <div>
            {citi}
            <button onClick={randomCities}> Change</button>
        </div>

    )
}




Aucun commentaire:

Enregistrer un commentaire