使用静态 React 函数的返回值



我正在尝试在支持 javascript Ecmascript 6 的 React + Webpack 项目中执行以下操作:

class ApiCalls extends React.Component{
  static uploadFiles(files) {
    // upload code
    if(success) {
      return(true, message);
    }
    else {
      return(false, message);
    }
  }
}
export default ApiCalls;

然后在我的调用组件中,我像这样调用该方法:

import ApiCalls from './ApiCalls';
class HomePage extends React.Component {
  ...
  handlePost(files) {
    ApiCalls.uploadFiles(files) = ((success, message) => {
      if (success) {
        console.log('Success! ' + message);
      }
      else {
        console.log('Error! ' + message);
      }
    }
  }
  ...
  render()
  ...
}
export default HomePage;

使用上面的代码,我收到以下错误:

Invalid left-hand side in assignment expression

箭头指向 ApiCalls。

我做错了什么?

我认为

,您以错误的方式使用callback function,将函数传递给静态函数并在成功时使用参数调用该函数,如下所示:

handlePost(files) {
    ApiCalls.uploadFiles(files, (success, message) => {
      if (success) {
        console.log('Success! ' + message);
      }
      else {
        console.log('Error! ' + message);
      }
    })
}

现在像这样写static function

static uploadFiles(files, target) { //target will be that callback function
    // upload code
    if(success) {
      target(true, message);  //call that function and pass the parameter
    }
    else {
      target(false, message);
    }
}

最新更新