react native 中的 async 关键字和 render() 是啥?它实际上是做啥的

Posted

技术标签:

【中文标题】react native 中的 async 关键字和 render() 是啥?它实际上是做啥的【英文标题】:what is async keyword and render() in react native ?what does it actually doreact native 中的 async 关键字和 render() 是什么?它实际上是做什么的 【发布时间】:2019-08-21 09:02:09 【问题描述】:

什么是 react native 中的 async 关键字? 我是本地人的新手,所以任何人都可以帮助我解决这个问题:) 而且我实际上已经尝试查看堆栈溢出是否存在一些问题,但我没有任何问题!

   export default class CameraExample extends React.Component 
        state = 
        hasCameraPermission: null,
        type: Camera.Constants.Type.back,
  ;

   async componentDidMount() 
        const  status  = await 
        Permissions.askAsync(Permissions.CAMERA);
        this.setState( hasCameraPermission: status === 'granted' );
  

【问题讨论】:

这是一个更简单、更易读的语法,用于执行异步操作 ...而不是使用then catch ...它是一个javascript的东西...这不是 ReactNative 特有的东西 【参考方案1】:

async/await 是与Promises 一起使用的Javascript 功能,它不是那么简单,请在async 之前阅读Promises

render() 是 React 中最重要的功能,因为它告诉您的目标(Web 或本机)在屏幕上显示什么。使用 Class 组件时,您需要 return 您对 render() 方法的看法。但是,使用函数式组件时,组件本身是一个“render()”方法,会显示从他那里返回的内容。

【讨论】:

【参考方案2】:
   const  status  = await Permissions.askAsync(Permissions.CAMERA);
   this.setState( hasCameraPermission: status === 'granted' );

是 ES7 语法等价于

Permissions.askAsync(Permissions.CAMERA)
   .then(( status ) => this.setState( hasCameraPermission: status === 'granted' );

【讨论】:

以上是关于react native 中的 async 关键字和 render() 是啥?它实际上是做啥的的主要内容,如果未能解决你的问题,请参考以下文章

在 react-native 组件中实现 async/await 功能

处理 Async Await 以使用 Firebase 和 react native

在 React Native 中使用 async/await 处理 API 调用

react-native async 函数返回 promise 但不返回我的 json 数据?

React Native Async\Await 无法与 setState 一起正常工作

react-native 异步存储不保存,也没有错误