此刻我收到一个错误,因为我从REST端点映射了一个对象数组,并且该数组中的一些对象没有特定的道具。ReactJS如果道具存在
一个例子是,我的一些对象内有另一个对象,称为images
,有些则不。当我的React组件尝试渲染没有images
的对象时,我留下了一个未定义prop的错误。
这里是我的组件呈现我的道具:
const VehicleDetail = (props) => {
return (
<div className={"col-flex-md-3 col-flex-sm-4 col-flex-xs-6 col-flex-media-query vehicle-item " + props.vehicle.brand.name} data-value={props.vehicle.brand.name}>
<div className="vehicle-container">
<img src={"https://s3-eu-west-1.amazonaws.com/pulman-vw-images/uploads/images/thumbnails/" + props.vehicle.offers[0].image.name} />
<h4 className="vehicle-title">
{props.vehicle.model.name}
</h4>
<div className="row-flex">
<div className="col-flex-xs-12 btn-container">
<a href={"http://beaver" + props.vehicle.brand.name + ".co.uk/new/cars/" + props.vehicle.slug} target="_blank" className="learn-more-btn">Learn More</a>
</div>
</div>
</div>
</div>
);
};
所以你可以看到我有一个img
元素与props.vehicle.offers[0].image.name
道具然而,这未能按我的一些对象没有可用此对象。
到目前为止,我已经尝试添加条件只是为了看看内联如果对象存在的第一但是这个失败,出现错误:
<img src={"https://s3-eu-west-1.amazonaws.com/pulman-vw-images/uploads/images/thumbnails/" + {if (typeof props.vehicle.offers[0].image.name == "object") { props.vehicle.offers[0].image.name }}} />
这里是我的组件,它在每个对象进行迭代,并且它们使我VehicleDetail组件:
// Vehicle List Component
import VehicleDetail from './vehicle-detail.js';
// Create our component
const VehicleList = (props) => {
// Just add props.vehicle to access API data instead of static
const RenderedVehicles = props.vehicles.map(vehicle =>
<VehicleDetail key={vehicle.slug} vehicle={vehicle} />
);
return (
<div className="row-flex center-xs">
{RenderedVehicles}
{console.log(props.brandSelect)}
</div>
);
};
任何想法React JS的最佳实践是做什么的?谢谢