Reactjs 在React JS中可以使用async/await吗?

Reactjs 在React JS中可以使用async/await吗?,reactjs,react-native,Reactjs,React Native,我开始用React Native编程,并习惯了使用以下语法: async myFunction(){ ... return await otherFunction(); } 但我不知道如何使它与React JS兼容,并在共享包中与React Native兼容。如何实现这一点,使其在两种平台上都能工作 谢谢 React本机附带Babel和一些Babel预设,而React在web上只是与React相关的代码 如果您现在想在web上使用async/Wait,您需要Babel和正确的转

我开始用React Native编程,并习惯了使用以下语法:

async myFunction(){
    ...
    return await otherFunction();
}
但我不知道如何使它与React JS兼容,并在共享包中与React Native兼容。如何实现这一点,使其在两种平台上都能工作


谢谢

React本机附带Babel和一些Babel预设,而React在web上只是与React相关的代码

如果您现在想在web上使用async/Wait,您需要Babel和正确的转换:


或者是第1阶段预设,这在今天的React应用程序中相当常见

如果您使用create react应用程序进行构建,则从v0.2.3开始即可使用

它可以在这样的组件中使用

class App extends Component {
  constructor(props) {
    super(props);
    this.state = { message: '' };
  }

  async componentDidMount() {
    this.setState({ message: 'loading...' });
    let d = await getData('/posts/1');
    this.setState({ message: d });
  }

  render() {
    let { message } = this.state;
    return (
      <div className="App">
        <p className="App-intro">
          { message }
        </p>
      </div>
    );
  }
}
类应用程序扩展组件{
建造师(道具){
超级(道具);
this.state={消息:'};
}
异步组件didmount(){
this.setState({message:'loading…'});
设d=wait-getData('/posts/1');
this.setState({message:d});
}
render(){
让{message}=this.state;
返回(

{message}

); } }
见:

或者,您可以使用


从2.1版开始,就可以直接使用
async/await
(换句话说,让它在~所有浏览器上运行)

谢谢@azium的回答。我安装了这两个函数,在运行“npm run dev”之后,我得到了异步函数的错误“Unexpected token”,您将不得不显示更多关于您的项目的信息以进行诊断。。你能发布你的package.json和webpack.config.js文件吗?最后,将async转换为generator对React很有效,谢谢@azium你在React本地官方文档中看过AsyncStorage吗?(编辑:几个月前才注意到这个问题)@EnieJakiro我不知道异步存储与这个问题有什么关系。我确实使用异步存储,但只对React Native使用。这是一个非常好的提示。我不知道构建应用程序的这种方式。非常感谢。Tim,异步componentDidMount方法有什么用?谢谢,但它不适用于arrow函数。我使用arrow函数来避免在构造函数中绑定
this
时出现额外的代码行。关于如何使其与箭头函数兼容的任何提示。我正在使用CRAnvm,我正在编写
async somefunction=()=>{}
而不是
somefunction=async()=>{}