簡體   English   中英

類型錯誤:未定義不是對象(評估“data.filter”)-React Native

[英]TypeError: undefined is not an object (evaluating 'data.filter') - React Native

我是 React/編程的新手,無法獲取/顯示數據。 我的代碼返回以下錯誤。 提前感謝您的幫助。

類型錯誤:類型錯誤:未定義不是對象(評估“data.filter”)

  import useFetch from 'react-fetch-hook'

  const { data } = useFetch('http://192.168.2.94:3000/list-categories')

  const locations = props.navigation.getParam('locationId')

  const displayedCategories = data.filter(      // ERROR HERE
    cat => cat.locId.indexOf(locations) >= 0
  )

  const renderGridItem = itemData => {
    return (
      <CategoryGridTile
        image={itemData.item.image}
        title={itemData.item.title}
      />
    )
  }

  return (
    <FlatList
      keyExtractor={(item, index) => item.id}
      data={displayedCategories}
      renderItem={renderGridItem}
    />
  )
}

來自 http://192.168.2.94:3000/list-categories 的 JSON

useFetch您返回一個isLoading標志以及您必須使用的數據來顯示加載指示器,直到數據可用

const { isLoading, data } = useFetch('http://192.168.2.94:3000/list-categories');
 if(isLoading) {
    return <span>Loading...</span>
 }
 const locations = props.navigation.getParam('locationId')

  const displayedCategories = data.filter(
    cat => cat.locId.indexOf(locations) >= 0
  )

  const renderGridItem = itemData => {
    return (
      <CategoryGridTile
        image={itemData.item.image}
        title={itemData.item.title}
      />
    )
  }

  return (
    <FlatList
      keyExtractor={(item, index) => item.id}
      data={displayedCategories}
      renderItem={renderGridItem}
    />
  )

我認為一開始沒有數據所以請使用默認分配

  const { data = [] } = useFetch('http://192.168.2.94:3000/list-categories')

更新

  const displayedCategories = data.filter(
    cat => cat && cat.locId && cat.locId.indexOf(locations) >= 0
  )

暫無
暫無

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

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