【发布时间】:2016-05-22 13:31:17
【问题描述】:
这是我碰到的。在 React 组件的渲染函数中,我有这个:
{first_name} {last_name}
我用这个替换它:
{first_name.toUpperCase()} {last_name.toUpperCase()}
我的应用程序无法再登录。我正在使用 Axios 与后端对话。 Axios 是基于承诺的。在我进行上述更改之后。它显然开始执行我的login API 调用的then 和catch 块。当我在 catch 块中打印响应时。
function login(data, success, error) {
axios.post('/login',
JSON.stringify(data),
{
baseURL: config.apiUrl,
headers: { 'Content-Type': 'application/json; charset=utf-8' }
})
.then((response) => success(response.data))
.catch((response) => {
console.log(response)
error(response.status)})
}
我得到以下信息:
TypeError: Cannot read property 'toUpperCase' of undefined
上面的组件(它是一个简单地在页面上显示来自 props 的东西的愚蠢组件)和 API 调用代码之间绝对没有任何关系。
这不是我第一次在我的应用程序中遇到这个问题。以前有没有人碰到过这样的事情?我知道组件中的变量未定义,这就是出现错误的原因。我的问题是它如何在应用程序另一端的某个地方进入 promise 的 catch 块。
【问题讨论】:
标签: javascript reactjs promise