TypeError: Cannot read property 'length' of undefined
That's what the compiler says when I run my react app. What I do need to do with this?
request = (start,end) => {
if(this.state.teams.length < 1){
axios.get(`${ URL }/teams`)
.then( response => {
this.setState({
teams:response.data
})
})
}
axios.get(`${ URL }/articles?_start=${start}&_end=${end}`)
.then( response => {
this.setState({
items:[...this.state.items,...response.data]
})
})
}
TypeError: Cannot read property 'length' of undefined
That's what the compiler says when I run my react app. What I do need to do with this?
request = (start,end) => {
if(this.state.teams.length < 1){
axios.get(`${ URL }/teams`)
.then( response => {
this.setState({
teams:response.data
})
})
}
axios.get(`${ URL }/articles?_start=${start}&_end=${end}`)
.then( response => {
this.setState({
items:[...this.state.items,...response.data]
})
})
}
Share
Improve this question
edited Oct 30, 2021 at 18:22
NearHuscarl
81.3k22 gold badges318 silver badges280 bronze badges
asked Jul 9, 2018 at 17:46
klixoklixo
4522 gold badges8 silver badges19 bronze badges
1
|
5 Answers
Reset to default 7I would suggest to check first if the props is undefined or empty or even declared.
for example:-
const card = props && props.cards && props.cards.length > 0 ?
props.cards.map((card, i) => {
return (
<card >
)
}) : '';
And return your card.
I would suggest using a check to see if "teams" is undefined before trying to get the length.
if (value === undefined) {
// value is undefined
}
Be sure that the teams value of your component's state is initialized with an array value like this :
class MyComponent extends React.Component {
state: {
teams: [],
};
}
Probably because you're having a variable that is supposed to contain an array but is undefined
when referencing the length
property. Try searching for .length
in your editor and create an empty array if it's not initialized:
if ((arr || []).length > 0) {
// do something
}
// or
if (arr?.length > 0) {
// do something
}
This issue happens especially in react or react native, just add a question sign e.g,
{title?.length>20? title?.substring(0,20)+'...':title}
this.state.teams
has a value. – Cruril Commented Jul 9, 2018 at 17:50