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

时间:2018-07-09 17:46:45

标签: javascript reactjs

TypeError:当我运行react.js应用时,无法读取s what说编译器的未定义属性'length',我需要做些什么?

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 个答案:

答案 0 :(得分:2)

我建议先检查道具是否未定义,为空或什至声明为空。

例如:-

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

并退还您的卡。

答案 1 :(得分:1)

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

if (value === undefined) {
    // value is undefined
}

答案 2 :(得分:1)

请确保使用以下数组值初始化组件状态的teams值:

class MyComponent extends React.Component {

    state: {
      teams: [],
    };
}