javascript - 有没有办法忽略 TypeError (axios get request)
问题描述
有时有一条消息必须显示给用户。在这种情况下,消息是res.data.message
。但在某些情况下,如果没有消息,则res.data.message is null
. 如果它为空,我会得到一个
TypeError“无法读取 null 的属性‘消息’”。
有没有办法忽略此错误(if res.data.message is null)
并继续并且不显示任何内容?
getMessage() {
const token = localStorage.getItem('token');
if (token) {
axios
.get(`/api/getMessage/${this.props.match.params.id}`, {
headers: {
'X-Auth-Token': token
}
})
.then((res) => this.setState({
message: res.data.message
}));
}
}
componentDidMount() {
this.getMessage();
}
解决方案
这不是表示message
为空,而是表示data
为空。
catch
在调用 Promise 处理错误时使用。研究那个。
但是您可以像这样使用问号运算符:
.then((res) => this.setState({ message: res.data?.message }));
推荐阅读
- r - pivot_wider,计数出现次数
- android - 使用硬件后退按钮后,导航未在 Cordova Angular 应用程序中打开
- javascript - 在 Screeps 中,我可以让 CPU 直到下一个滴答声吗?
- pandas - 在groupby pandas中获取以字典格式存储的值频率的最快方法
- reactjs - 限制连接组件中的 MapStatetoProps 调用
- python - 使用 Flask 达到查询限制时,下一个分页按钮不会被停用
- api - Docusign:基本 API 中的嵌入式发送
- python - 在 Apache Beam 转换中将 Elasticsearch 客户端对象设置为实例变量会导致 Python 中的序列化错误
- javascript - vuex 映射命名空间操作“不是函数”错误
- javascript - Discord JS 允许用户进入频道