簡體   English   中英

React JS 無法讀取未定義的屬性“地圖”

[英]React JS cannot read property 'map' of undefined

我想從api獲取數據,並將其設置為狀態,並在map中使用它進行迭代

    const result = await API.getSearch(data);

    if(result.status === 200){
        this.setState({data: result.data, loading: false })
    }

    const result = await API.getSearch(data); // got data successfully

然后:

this.state.data && this.state.data.length > 0 && this.state.data.data.map(function(value, i){

我知道這種錯誤意味着,地圖沒有得到任何數據,所以我使用了條件,首先我檢查狀態是否返回數據,然后檢查數據是否有長度,但仍然得到這個錯誤。 任何解決方案?

我想而不是這個

this.state.data.data.map(function(value, i){

應該只有一次數據

this.state.data.map(function(value, i){

看起來你還沒有初始化data 因此,在第一次渲染期間,它是undefined undefinedmap不存在。導致這個問題。

像下面這樣聲明和定義data

this.state = {
    data: []
}

或者

constructor(props) {
    this.state = {
        data: []
    }
}

使用解構獲得默認值並確保內部data是數組

 const { data : { data = [] } = {} } = { data: { data: ['foo', 'bar']} } ; console.log(data.map(x => x + "--").join());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM