reactjs 传递在嵌套函数中不起作用的属性

5ktev3wc  于 2022-11-04  发布在  React
关注(0)|答案(1)|浏览(108)

当我将props传递给OnBeforeSend函数时,它可以工作,但是一旦我将它放入嵌套的args.ajaxsettings函数中,它就不工作了。

export default class FileManager extends React.PureComponent {

  hostUrl = "https://amazons3.azurewebsites.net/api/AmazonS3Provider/";

  constructor(props) {
    super(props);
    this.fileSelection= this.fileSelection.bind(this);
  } 

  onBeforeSend(args) {  
    //this works
    console.log(this.props.team_id);

    args.ajaxSettings.beforeSend = function (args) {

      //this one doesn't work
      console.log(this.props.team_id);

      args.httpRequest.setRequestHeader('Authorization', 'public/');

    };

  }

在控制台中,它返回错误Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'team_id')
如果您有任何关于如何让第二个console.log(this.props.team_id);工作的指导,我们将不胜感激。

lmvvr0a8

lmvvr0a81#

您正在作用域函数调用中使用this。请尝试改用箭头函数:

args.ajaxSettings.beforeSend = (args) => {

  //this one doesn't work
  console.log(this.props.team_id);

  args.httpRequest.setRequestHeader('Authorization', 'public/');

};

相关问题