Итак, когда ваш компонент рендерит первый раз, this.state.cats
не определено.
Что вы можете сделать с вашим кодом:
- обернуть ваш вызов выборки в асинхронный вызов, т.е.Обещание.Например,
//function
const fetchCats = async () => {
const responseData = await fetch(GLOBAL.COURSES)
.then((response) => response.json())
.then((responseDataSuccess) => {
return responseDataSuccess;
});
this.setState({
cats: responseData.data,
vdo: responseData.video,
isLoading: false
});
}
Или
для вашего компонента
<Courses />
вы можете сделать так, чтобы он не отображался до тех пор, пока состояние автомобиля не достигнет требуемого значения, а также будет хорошей практикой инициализировать
this.state = { cars: [] }
import { get } from 'lodash';
// a utility set for javascript
<Tabs>
<Tab heading="Courses" >
{get(this.state, cats) && <Courses cats={this.state.cats} />}
</Tab>
...
...
</Tabs>
PS сосредоточьтесь на управлении своим состоянием, и вы готовы идти.