React this
在promise中没有定义。这是我的代码:
export default class Album extends React.Component {
constructor(props) {
super(props);
}
componentDidMount () {
console.log(this.props.route.appState.tracks); // `this` is working
axios({
method: 'get',
url: '/api/album/' + this.props.params.id + '/' + 'tracks/',
headers: {
'Authorization': 'JWT ' + sessionStorage.getItem('token')
}
}).then(function (response) {
console.log(response.data);
this.props.route.appState.tracks.concat(response.data); // 'this' isn't working
}).catch(function (response) {
console.error(response);
//sweetAlert("Oops!", response.data, "error");
})
}
这是错误代码:
TypeError: this is undefined
Stack trace:
componentDidMount/<@webpack:///./static/apps/components/Album.jsx?:81:17
可能没有约束力this
。
如果您可以使用ES6语法,请尝试用箭头函数替换。它会自动绑定:
.then( (response) => {
console.log(response.data);
this.props.route.appState.tracks.concat(response.data); // 'this' isn't working
} )
或手动绑定:
.then(function (response) {
console.log(response.data);
this.props.route.appState.tracks.concat(response.data);
}.bind(this) )
我试图通过反应路由器将道具从一个组件传递到另一个组件。当我试图从子组件获取道具时,我得到了这样一条消息。这是我的代码: Tracks.jsx: app.jsx: Album.jsx:
我必须发布{输入}数据以http://localhost:4000/predictionAxios。但是{输入}变为未定义。 我使用const而不是类Main扩展组件. onChange,它设置表单数据。 阿希奥斯邮报。 返回(表单)时带有onSubmit、onChange。
获取类型错误,但使用onClick={()=
构建一个小的react应用程序,将地理位置(由浏览器确定为道具)传递给子组件。 第一个组件:app.jsx 该组件确定位置,保存要声明的纬度和经度,并通过props将该信息传递给Weather.jsx组件,该组件正在工作,如下图所示: 在Weather.jsx组件中,我尝试访问这些道具,得到未定义的或空的对象。 真的不知道问题是什么,因为react dev tools显示weather组件确实在传
我正在尝试将share组件与react native一起使用,但下面一直出现此错误。知道为什么吗? “\u reactNative。共有打开不是一个功能。(在“\u reactNative.Share.open({url:uri})”中,“\u reactNative。共有打开“未定义”
我正在浏览react文档中关于处理https://facebook.github.io/react/docs/handling-events.html 有一部分提到了以下一行:“在JavaScript中,类方法默认不被绑定。如果您忘记绑定this.handle单击并将其传递给onClark,当实际调用函数时,这将是未定义的。" 在Codepen上提供了一个示例。我试图通过注释掉“this.hand