当前位置: 首页 > 知识库问答 >
问题:

在JSX中使用异步函数进行渲染?

祁乐邦
2023-03-14

如何在组件返回中使用promise函数,如下所示:

function MyComp () {
 return (
  <div>
   {getFirebasePromise(ref).then(url => return url)}
  </div>
 )
}

因此,结果将是:

<div>urlFromFirebase</div>

即使我在同一个组件中有几个promise,我也必须使用useState()

共有1个答案

阎德宇
2023-03-14

您可以使用useStateuseffect执行此操作。

function MyComp () {
    [url, setUrl] = useState("");
    useEffect(()=>{
        getFirebasePromise(ref).then(url => setUrl(url));
    });
    
    return (
        <div>
            {url}
        </div>
    )
}
 类似资料:
  • 它必须是基本的,但请帮助我理解为什么这不起作用。 当我编写一个普通的arrow函数并返回jsx时,它就工作了。但是,当我使用async/await请求和相同的arrow函数返回jsx时,它失败了。 编辑: 实际上,我必须在列表视图中显示用户的配置文件图像。所以,我调用这个函数来检索我的块中相应用户的图像 这很有效 但事实并非如此

  • 问题内容: 我想要实现的是Web钩子应该等待,直到我从api调用获得响应为止。PS:API正在起作用,只是机器人不等待响应到来。任何帮助将不胜感激。谢谢 问题答案: 您没有说明要在什么环境中运行,但是鉴于您的代码以及上面概述的更改,我可以使用Firebase Cloud Functions和node.js 6.14复制您的问题。 我可以通过使用包而不是来使它正常工作。顾名思义,它使用本机Promi

  • 我有一个异步函数,它在代码中的某个地方按setInterval运行。此函数定期更新一些缓存。 我还有一个不同的同步函数,它需要检索值——最好是从缓存中检索,但如果是缓存未命中,则从数据源检索(我意识到以同步方式进行IO操作是不明智的,但假设在这种情况下需要这样做)。 我的问题是,我希望同步函数能够等待异步函数中的值,但是不可能在非异步函数中使用关键字: 现在,通过将中的逻辑提取到一个新的同步函数中

  • 我目前正在阅读React官方网站,在那里我遇到了这个问题。React官方网站声明我们可以在JSX中使用函数代码。因此,我尝试了以下代码,但不起作用。 ABCD类扩展了React。组件{ } 我知道,我知道,你们中的一些人可能会说,看看React网站上给出的例子。我看到了,官网上的例子涉及到外部功能。我只是想知道我们能否独立使用JSX内部的函数。 有关更多信息,请参阅此链接:https://reac

  • 问题内容: 我试图将两个异步函数链接在一起,因为第一个具有条件返回参数,导致第二个运行或退出模块。但是,我发现规格中找不到奇怪的行为。 这是我的代码的混帐摘要(您可以在此处查看完整的范围),该代码只是检查玩家是否已经在大厅中,但这无关紧要。 接下来,我们有这个异步功能。 如果,则无需运行此功能。 我试着做 我希望这将等待结果,以便可以有条件地运行,但是我收到了没有具体细节的类型错误。 为什么您不能

  • 问题内容: 我想使用生成器yield和async函数。我阅读了本主题,并编写了以下代码: 但是我得到了错误: 语法错误:异步函数中的“ yield” 如何在异步功能中使用良率生成器? 问题答案: 更新: 从Python 3.6开始,我们有了异步生成器,能够直接在协程内部使用。 Python 3.5的旧答案: 您不能在协程内部。唯一的方法是使用/ magic方法手动实现异步迭代器。在您的情况下: 输