繁体   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