首页 > 解决方案 > 有没有办法忽略 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();
}

标签: javascriptnode.jsreactjsaxios

解决方案


这不是表示message为空,而是表示data为空。

catch在调用 Promise 处理错误时使用。研究那个。

但是您可以像这样使用问号运算符:

.then((res) => this.setState({ message: res.data?.message }));

推荐阅读