我有一个组件,我从另一个组件传递了一个属性。
如下<RegisterVisitor someProperty={this.aFunction} />
在子组件中,this.props
在构造函数之外未定义。
我拿出了代码片段。 this.props
中定义了render ()
,但未定义registerVisitor
。谁知道问题可能是什么?
export default class RegisterVisitor extends React.Component {
constructor(props) {
super(props);
this.registerVisitor = this.registerVisitor.bind(this);
}
registerVisitor () {
$.ajax({
url: '/api/visit',
type: 'POST',
data: postData,
contentType: 'application/json'
})
.done(
function(result) {
this.props.someProperty; //<------ undefined
}
);
}
}
答案 0 :(得分:4)
在.done
回调this
中未提及RegisterVisitor
,您应设置this
进行回调。您可以使用.bind
...
.done(
function(result) {
this.props.someProperty;
}.bind(this)
);
或者您也可以使用arrow function
...
.done((result) => {
this.props.someProperty;
});