reactjs - 返回结果没有标识时出错
问题描述
我正在使用 Eventbrite API 创建一个带有 React 的应用程序。
该应用程序称为 Eventfinder,它允许您根据关键字、位置和给定时间搜索事件。
我遇到的问题是,当事件没有指定徽标时,我收到以下错误:
Unhandled Rejection (TypeError): Cannot read property 'url' of null
(anonymous function)
src/components/util/EventBrite.js:18
15 | if (jsonResponse.events) {
16 | return jsonResponse.events.map(event => ({
17 | id: event.id,
> 18 | logo: event.logo.url,
19 | date: event.start.local,
20 | name: event.name.text,
21 | url: event.url
View compiled
(anonymous function)
src/components/util/EventBrite.js:16
13 | return response.json();
14 | }).then(jsonResponse => {
15 | if (jsonResponse.events) {
> 16 | return jsonResponse.events.map(event => ({
17 | id: event.id,
18 | logo: event.logo.url,
19 | date: event.start.local,
这是有关添加事件的 Eventbrite 文档https://www.eventbrite.com/developer/v3/endpoints/events/
我试图添加一个“无图像”占位符并写一些内容,如果没有图像,则显示此占位符。但不幸的是,我无法让它工作。
这是我的 Eventbrite.js 文件:
const myToken = 'token hidden';
const EventBrite = {
search(term, location, date, sortBy) {
return fetch(`https://cors-
anywhere.herokuapp.com/http://www.eventbriteapi.com/v3/events/search?token=token hidden&q=${term}&location.address=${location}&start_date.keyword=${date}&sort_by=${sortBy}`, {
headers: {
Authorization: `Bearer ${myToken}`,
Origin: `http://localhost:3000`,
}
}).then(response => {
return response.json();
}).then(jsonResponse => {
if (jsonResponse.events) {
return jsonResponse.events.map(event => ({
id: event.id,
logo: event.logo.url,
date: event.start.local,
name: event.name.text,
url: event.url
}));
}
});
}
}
export default EventBrite;
我需要在 return 语句上方编写一个函数吗?
非常感谢任何帮助
克雷格
解决方案
这里的问题event.logo
是 null (因为没有徽标)所以您无法访问event.logo.url
. 一种可能的解决方案是检查此值是否为null
,如果是,则设置另一个徽标 url 或根本不设置。
为此,我正在使用这样的三元运算符:
if (jsonResponse.events) {
return jsonResponse.events.map(event => ({
id: event.id,
logo: event.logo.url === null ? '' : event.logo.url,
date: event.start.local,
name: event.name.text,
url: event.url
})
);
推荐阅读
- java - 带有 Gradle 自定义运行时映像的 SQLite JDBC
- ruby-on-rails - 以感叹号结尾的锁的含义
- devenv - 使用特定配置和平台打开 Visual Studio
- ibm-cloud - API Connect 2018 VMware 部署:“主机缺少流量接口”错误
- ssis - SSDT Microsoft.AnalysisServices.Server 连接抛出“值不能为空错误”
- java - SpringBoot,如何根据每个控制器或请求映射设置 MultipartFile 大小限制
- javascript - 用不同的字符串替换部分字符串
- c# - 如何在c#中删除标签后重新添加标签
- html - ios webview css和超链接在容器中的本地html文件中不起作用
- sage - 使用 Sage 的最佳方法是什么