Home > Back-end >  Problem with fetching data in React, Assignment to constant variable
Problem with fetching data in React, Assignment to constant variable

Time:04-30

I just started to learn React and was trying to fetch some random data. i created a useState and have two values : const [name, setName] = useState([]); when i try to do name : response.json(); I get an error that assignment to a constant variable, I'm following a tutorial which is doing the same. surprisingly when I create a constant variable with a different name, it works. I only can't assign the name = await response.json(); Thank you

import React, { useEffect, useState } from "react";
import { ReactDOM } from "react";

const FetchData = () =>{

    const [name, setName] = useState([]);

    const fetchNames = async () =>{

        const url = `https://randomuser.me/api`;

        try {
            
            const response = await fetch(url);
            name = await response.json();
            console.log(name);
           setName(name);
        
        } catch (error) {
            
            console.log(error);
        }
    }

    useEffect(()=>{

        fetchNames();
    },[])

    return(

        <div>

        </div>
    );
}

export default FetchData;

CodePudding user response:

You should refer to docs in such cases:

The value of a constant can't be changed through reassignment (i.e. by using the assignment operator), and it can't be redeclared (i.e. through a variable declaration).

But regardless of that (i.e. if you had used let instead of const) you should never change state in react like that, you must use the setter function (setName).

CodePudding user response:

there are 2 things that might help with this confusion

  1. any variable created using const will forever hold the value it had when it was declared, so for eg if we have const x = "

  • Related