#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 Ах, отличный улов!