Skip to main content

Command Palette

Search for a command to run...

Intermediate example of useState and useEffect with fetch API ?

Published
1 min read
S

I love learning about technology and sharing that with others

here we are using select and useState, useEffect and JSONStringify

so once the option is selected our component will basically render the stats of the fruits if this doesn't work on your computer throw some CORS error install one plugin

Moesif Origin & CORS Changer

Code

import React, { useState, useEffect } from 'react'
import './First.css'

const First = () => {
  const [fruit, setOption] = useState('banana')
  const [fruitInfo, setFruitInfo] = useState()

  const options = [
    {
      label: 'Apple',
      value: 'apple',
    },
    {
      label: 'Mango',
      value: 'mango',
    },
    {
      label: 'Banana',
      value: 'banana',
    },
    {
      label: 'Pineapple',
      value: 'pineapple',
    },
  ]

  const onSelectedValue = (e) => {
    setOption(e.target.value)
  }

  const fetchFruits = () => {
    fetch(`https://www.fruityvice.com/api/fruit/${fruit}`)
      .then((response) => response.json())
      .then((json) => {
        setFruitInfo(json)
      })
  }
  useEffect(() => {
    fetchFruits()
  }, [fruit])
  return (
    <div>
      <h1>this is cool</h1>

      <div className='select-div'>
        <select value={fruit} onChange={(e) => onSelectedValue(e)}>
          {options.map((option) => (
            <option value={option.value}>{option.label}</option>
          ))}
        </select>

        <p> {JSON.stringify(fruitInfo)}</p>

        <h5>
          Carbohydrate in {fruit} is{' '}
          {JSON.stringify(fruitInfo.nutritions.carbohydrates)}
        </h5>
      </div>
    </div>
  )
}

export default First
1 views

More from this blog

H

hashcodehub

271 posts

Consistent, Passionate and Organized :)