簡體   English   中英

React Native中未處理的承諾拒絕

[英]Unhandled promise rejection in react native

我警告未處理的承諾被拒絕,並且undefined不是評估this.state.gridData [0] .brand的對象

這部分代碼有問題

 async componentDidMount() { const bikes = await fetchVehicleBasedOnType(VEHICLE_TYPES.TWO_WHEELER); this.setState({ bikes }); const gridData = _.uniqBy(bikes, 'brand').map((K) => { return { brand: K.brand, logo: K.brand_logo }; }); this.setState({ gridData, selectedBikeBrand: this.state.gridData[0].brand, selectedBikeBrandLogo: this.state.gridData[0].logo, loading: false }); const listData = bikes .filter(item => item.brand === this.selectedBrand) .map(({ model, image }) => ({ model, modellogo: image })); this.setState({ listData }); } 

有人可以建議修改和修復以使此代碼更好。

您沒有將gridData分配給this.state ,因此假定this.state.gridDataundefined 只需刪除this.state的用法this.state 在嘗試訪問gridData[0]屬性之前,還應該檢查以確保gridData不為空。

const gridData = _.uniqBy(bikes, 'brand').map((K) => {
    return { brand: K.brand, logo: K.brand_logo };
});

const firstItem = gridData[0] || { };

this.setState({ 
    gridData,
    selectedBikeBrand: firstItem.brand,
    selectedBikeBrandLogo: firstItem.logo,
    loading: false
});

設置狀態時,您具有girdData [0] .brand。

暫無
暫無

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

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