React Native this2.state 错误
React Native this2.state error
我正在尝试获取 GET 请求的响应(这是一个对象数组),并将其状态设置为一个数组 'templates',以便我稍后可以使用 [=20= 访问它],像这样:
fetch('https://tiy-warmup.herokuapp.com/api/templates?token=' +
token)
.then(response => response.json())
.then(response => this.setState({templates: response}))
// .then(response => console.log(response))
当我注释掉 setState 行并仅在控制台记录响应时,我得到了正确的数组,所以我知道我的提取是好的。但是,当我尝试 运行 setState 行时,出现此错误:
Possible Unhandled Promise Rejection (id: 0):
_this2.setState is not a function
解决此错误并能够在渲染中使用 this.state.templates 的解决方案是什么?
Possible Unhandled Promise Rejection
发生此错误是因为您没有实现 catch
您的承诺
.catch(error => {
console.log('There has been a problem with your fetch operation: '+ error.message);
});
无论您在何处使用此提取,请绑定函数或更改为箭头函数。 this
未绑定到组件,因此 this.setState
引发错误。显示未处理的承诺拒绝错误,因为您没有设置 catch 语句来处理错误。
_this2.setState is not a function
,通常,你的 this 不是你组件的 ref,启动调试器并仔细检查什么是 this
ref。我想你可能会使用 bind
或 const self = this
来解决这个问题。
看看这个post可能对你有帮助,https://www.sitepoint.com/bind-javascripts-this-keyword-react/
我正在尝试获取 GET 请求的响应(这是一个对象数组),并将其状态设置为一个数组 'templates',以便我稍后可以使用 [=20= 访问它],像这样:
fetch('https://tiy-warmup.herokuapp.com/api/templates?token=' +
token)
.then(response => response.json())
.then(response => this.setState({templates: response}))
// .then(response => console.log(response))
当我注释掉 setState 行并仅在控制台记录响应时,我得到了正确的数组,所以我知道我的提取是好的。但是,当我尝试 运行 setState 行时,出现此错误:
Possible Unhandled Promise Rejection (id: 0):
_this2.setState is not a function
解决此错误并能够在渲染中使用 this.state.templates 的解决方案是什么?
Possible Unhandled Promise Rejection
发生此错误是因为您没有实现 catch
您的承诺
.catch(error => {
console.log('There has been a problem with your fetch operation: '+ error.message);
});
无论您在何处使用此提取,请绑定函数或更改为箭头函数。 this
未绑定到组件,因此 this.setState
引发错误。显示未处理的承诺拒绝错误,因为您没有设置 catch 语句来处理错误。
_this2.setState is not a function
,通常,你的 this 不是你组件的 ref,启动调试器并仔细检查什么是 this
ref。我想你可能会使用 bind
或 const self = this
来解决这个问题。
看看这个post可能对你有帮助,https://www.sitepoint.com/bind-javascripts-this-keyword-react/