reactjs - this.props没有在构造函数外定义

时间:2016-03-11 16:20:21

标签: reactjs

我有一个组件,我从另一个组件传递了一个属性。

如下<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
            }
        );
    }
}

1 个答案:

答案 0 :(得分:4)

.done回调this中未提及RegisterVisitor,您应设置this进行回调。您可以使用.bind

...
.done(
  function(result) {
     this.props.someProperty;
  }.bind(this)
);

或者您也可以使用arrow function

...
.done((result) => {
  this.props.someProperty;
});