我开始使用 React Native 进行编程,并且习惯了使用以下语法:
async myFunction(){
...
return await otherFunction();
}
但是我不知道如何使它与共享包中的 React JS 和 React Native 兼容。我怎样才能做到这一点,以便它在两个平台上都可以工作?
谢谢!
原文由 Santiago Bendavid 发布,翻译遵循 CC BY-SA 4.0 许可协议
我开始使用 React Native 进行编程,并且习惯了使用以下语法:
async myFunction(){
...
return await otherFunction();
}
但是我不知道如何使它与共享包中的 React JS 和 React Native 兼容。我怎样才能做到这一点,以便它在两个平台上都可以工作?
谢谢!
原文由 Santiago Bendavid 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您使用 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
原文由 Tim Arney 发布,翻译遵循 CC BY-SA 3.0 许可协议
1 回答1.6k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
2.3k 阅读
1 回答633 阅读✓ 已解决
932 阅读
892 阅读
React Native 附带 Babel 和一些 Babel 预设,而 Web 上的 React 只是与 React 相关的代码。
如果你今天想在网络上使用 async/await,你需要 Babel 和正确的转换: https ://babeljs.io/docs/plugins/transform-async-to-generator/
或 stage-1 预设,这在当今的 React 应用程序中相当普遍。 http://babeljs.io/docs/plugins/preset-stage-1/