开发者问题收集

无法读取未定义反应的属性“长度”

2018-07-09
39499
TypeError: Cannot read property 'length' of undefined

这就是我运行 React 应用时编译器显示的内容。我需要用它做什么?

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]
        })
    })
}
3个回答

我建议首先检查 props 是否未定义或为空甚至已声明。

例如:-

    const card = props && props.cards && props.cards.length > 0 ?
        props.cards.map((card, i) => {
            return (
                <card >
            )
        }) : '';

然后返回您的卡。

Hasan Zahran
2020-04-08

我建议在尝试获取长度之前检查“teams”是否未定义。

if (value === undefined) {
    // value is undefined
}
Bekah Saugen
2018-07-09

确保组件状态的团队值使用如下数组值初始化:

class MyComponent extends React.Component {

    state: {
      teams: [],
    };
}
thomas.winckell
2018-07-09