#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[])
Комментарии:
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;([]);