Не удается передать массив в другой компонент в react

#javascript #reactjs #typescript

#язык JavaScript #реагирует на #машинописный текст

Вопрос:

response является array возвращенным моим API . Я передаю это variable другому компоненту для создания таблицы в пользовательском интерфейсе.

 const [response, setResponse]= useState([]);  useEffect(() =gt; {  (  async () =gt; {  await axios.get('http://localhost:3000/api/certificates').  then(response=gt;{  setResponse(response.data);  setFlag(true);  })   }  )()  }, []);  

Я использую это response для другого component , чтобы создать таблицу.

 const ResultTable = (response: any[]) =gt; { -----------code------ ----------code------ }  

Я вызываю компонент, как показано ниже.

 lt;tbodygt;   lt;ResultTable response={response}/gt; //this line giving error  lt;/tbodygt;  

введите описание изображения здесь

какую ошибку я совершаю?

если я сделаю, как показано ниже

 ({response}: any[])   

он не распознает переменную отклика. мое досье таково .tsx введите описание изображения здесь

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

1. Вы забыли уничтожить свой реквизит в ResultTable

2. не могли бы вы направить меня на то же самое, пожалуйста.

3. const ResultTable = ({ response }: { response: any[] }) =gt; {...};

4. Чувак, ты действительно гений. это решило проблему. можете ли вы скопировать и вставить эту строку в ответ, чтобы я мог принять. это поможет другим.

Ответ №1:

Ваш компонент таблицы результатов должен выглядеть примерно так,

 const ResultTable = ({ response }) =gt; { -----------code------ ----------code------ }  

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

1. спасибо тебе, Арун. На самом деле ,после того, как я сделал то же самое, он не распознает переменную ответа внутри компонента resulttable. Я проверил орфографию и все такое

2. Обновлен ответ, можете попробовать прямо сейчас!!!

3. все, что находится в фигурной скобке, не распознается… то же, что и в предыдущем

Ответ №2:

Попробуйте обновить деструкцию по адресу ResultTable как:

 const ResultTable = ({response}: any[]) =gt; { -----------code------ ----------code------ }  

Кроме того, обновите инициализацию состояния как

 const [response, setResponse]= useStatelt;any[]gt;([]);  

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

1. Спасибо, Нирадж. Я приложил рассматриваемую ошибку. это не сработало.

Ответ №3:

Я тоже только что узнал об этом, но пустой массив автоматически выводится в тип «никогда». Я верю, что если вы измените свой крючок useState на этот:

 useState([] as any);  

это сработает.

А также измените это на const ResultTable = ({ response })

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

1. Спасибо, Кевин … на самом деле это не работает. та же ошибка

Ответ №4:

Попробуйте обновить деструкцию по адресу ResultTable как:

 const ResultTable = ({response}: any[]) =gt; { -----------code------ ----------code------ }  

Кроме того, обновите инициализацию состояния как

 const [response, setResponse]= useStatelt;any[]gt;([]);