使用静态React函数返回的值

时间:2017-05-14 20:48:44

标签: javascript reactjs callback webpack ecmascript-6

我正在尝试使用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。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我认为,你以错误的方式使用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);
    }
}