react JSX 组件并等待

IT技术 reactjs asynchronous promise async-await jsx
2021-05-12 17:58:58

我有一个 async/await 函数,我想使用它的结果在我的 React 本机应用程序中有条件地呈现一个 jsx 组件。

这是一个返回Promise的类方法。该方法已声明异步。

问题是我想使用这个结果来有条件地渲染一些 jsx。

const hasEdit = await perms.has('/page', 'edit');

return (
      <div>
      { hasEdit &&
        <Button
          icon='pencil'
          text='EDIT'
          onTouchTap={ () => { props.onEdit(); } }
        />
      }
      </div>
    )

这将返回:必须返回 一个有效的 React 元素(或 null)。您可能返回了 undefined、数组或其他一些无效对象。

知道我如何尝试吗?任何事情将不胜感激。

1个回答

移动 componentDidMount 的建议,使其异步,然后在结果上设置状态使其在渲染中可用。渲染不能是异步的。