0

i am getting Unhandled Runtime Error Error: Request failed with status code 500

when i console.log(gotid ) i am getting id
but when i pass it to axios in network tab it becomes https://ask-over.herokuapp.com/questone/undefined

const [Item, setItem] = useState([]);
  const router = useRouter();
  var id = router.query.itmid;
  var gotid = id;
  console.log(gotid);

  useEffect(() => {
    axios
      .get("https://ask-over.herokuapp.com/questone/" + gotid)
      .then((result) => {
        console.log(result);
        // document.title = result.data[0].Name;
        setItem(result.data);
      });
    //  console.table(this.state.items);
  }, [id]);


vivek kn
  • 107
  • 1
  • 18
  • 45
  • Does this answer your question? [useRouter/withRouter receive undefined on query in first render](https://stackoverflow.com/questions/61040790/userouter-withrouter-receive-undefined-on-query-in-first-render) – juliomalves Jan 06 '22 at 21:39

2 Answers2

1

yes just do this in useEffect:

useEffect(() => {
   if(id != null){
      axios.get(url +"/"+id).then(...)
   }
},[id])
Paiman Rasoli
  • 1,088
  • 1
  • 5
  • 15
0

No need to create extra variables :


const [Item, setItem] = useState([]);
  const router = useRouter();
  var id = router.query.itmid;
  console.log(id);

  useEffect(() => {
    axios
      .get("https://ask-over.herokuapp.com/questone/" + id)
      .then((result) => {
        console.log(result);
        // document.title = result.data[0].Name;
        setItem(result.data);
      });
    //  console.table(this.state.items);
  }, [id]);

Tushar Shahi
  • 16,452
  • 1
  • 18
  • 39