Ошибка типа: Объект(…) не является функцией при создании объекта JS

#javascript #reactjs

Вопрос:

Я получаю ошибку типа: Объект(…) не является проблемой компилятора функций, и я не уверен, почему, ниже приведены соответствующие файлы — я конкретно получаю проблему, когда

 const mySubmission = GetStudentSubmissionWithUrl();  

это бегство. Моя функция GetStudentSubmissionWithUrl() возвращает объект JavaScript, и я хочу назначить этот объект другому объекту JavaScript.

 function Details () {     const mySubmission = GetStudentSubmissionWithUrl();  /* TODO: do the filtering of a submission in the backend instead of right here - will cause a big performance hit */   return (    lt;React.Fragmentgt;   {mySubmission?.images amp;amp; lt;ImageCarousel imageList={mySubmission.images}/gt;}    lt;div className="card-body"gt;  lt;h1 className="title-event"gt;{}lt;/h1gt;    {mySubmission?.subjectName amp;amp; lt;h2 className="title-location"gt; {mySubmission.subjectName}lt;/h2gt;}    lt;brgt;lt;/brgt;    lt;div className="row=title"gt;     {mySubmission?.location amp;amp; lt;h3 className="submitter-location"gt; {mySubmission.location}lt;/h3gt;}    {mySubmission?.description amp;amp; lt;pgt; {mySubmission.description}lt;/pgt;}      lt;/divgt;    lt;brgt;lt;/brgt;    lt;/divgt;    {mySubmission?.sources amp;amp; lt;Source sourceList={mySubmission.sources}/gt;}    lt;/React.Fragmentgt;    );  }  export default Details;  

Вот где определена моя соответствующая функция GetStudentSubmissionWithUrl() :

 import React, { useState, useEffect } from 'react'; import { getAllVerified } from '../util';  //return a StudnetSubmission given the current ulr link that we are in function GetStudentSubmissionWithUrl() {   const [submissions, setSubmissions] = useState(null);   useEffect(() =gt; {  const fetchData = async () =gt; {  const data = await getAllVerified(); //just get the one  setSubmissions(data);  };  fetchData();  }, []);   let str = JSON.stringify(window.location.pathname);  let submissionId = str.split("/").pop();    submissionId = submissionId.replace('"', '');   let mySubmission;  if (submissions != null) {  var arrayLength = submissions.length;  for (var i = 0; i lt; arrayLength; i  ) {  let string_id = submissions[i].id;  string_id = string_id.replace('"', '');  if (submissionId === string_id) {   mySubmission = JSON.parse(JSON.stringify(submissions[i]));  }    }  }  return mySubmission; }  export default GetStudentSubmissionWithUrl;  

Любая помощь будет очень признательна — заранее спасибо!

Комментарии:

1. GetStudentSubmissionWithUrl похоже, это компонент функции React. Не вызывайте функции React напрямую. Визуализируйте их как JSX и обработчики React, создающие их экземпляры и обрабатывающие жизненный цикл компонентов. Можете ли вы обновить свой вопрос, чтобы включить полное сообщение об ошибке и любую трассировку стека?

2. И убедитесь, что вы импортируете GetStudentSubmissionWithUrl в свой файл вместе с Details компонентом

3. Как вы импортируете эту функцию?

4. Вы не можете использовать крючки react за пределами функционального компонента React или пользовательского крючка, который начинается с use ключевого слова.

5. @SinanYaman Ах, отличный улов!