我开始在React Native中编程,并且习惯了使用以下语法:
async myFunction(){
...
return await otherFunction();
}
但我不知道如何在共享包中使其与React JS和React Native兼容。我如何才能做到这一点,让它在两个平台上都能工作?
谢谢!
发布于 2016-07-14 00:47:24
React Native附带了Babel和一些Babel预设,而React on web只是React相关的代码。
如果你现在想在网络上使用async/await,你需要Babel和正确的转换:https://babeljs.io/docs/plugins/transform-async-to-generator/
或者stage-1预置,这在React应用程序中非常常见。http://babeljs.io/docs/plugins/preset-stage-1/
发布于 2017-03-05 06:01:36
如果您使用create-react-app进行构建,它从v0.2.3起就可用了
https://github.com/facebookincubator/create-react-app/releases/tag/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>
);
}
}
请参见:
https://github.com/facebookincubator/create-react-app/issues/1024
发布于 2017-03-06 16:24:39
或者,您可以使用Typescript。
从2.1版本开始,可以直接使用async/await
和transpile to ES5 (换句话说,让它在所有浏览器上运行)
https://stackoverflow.com/questions/38357234
复制相似问题