首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回反应元件的允诺功能

返回反应元件的允诺功能
EN

Stack Overflow用户
提问于 2022-07-04 19:04:03
回答 1查看 49关注 0票数 0

如果-否则在run中不能工作,但是在run中会工作,那么是否有人对此进行了修正。做这个工作的唯一方法是使用一个react钩子,但是我一点也不知道应该在哪里实现它。

代码语言:javascript
复制
import { useAddress } from "@thirdweb-dev/react";
import Head from 'next/head';
import Link from 'next/link';
import Username from '../components/Username';
import React from "react";



const Home = () => {

    let p = new Promise((resolve, reject) => {
        let address = useAddress();
        if (address) {
            resolve(address)
        } else {
            console.log('no addy')
            reject()
        }
    })

    p.then((address) => {
        return (
            <>
                <Head>
                    <title>DRUMM3R</title>
                    <link rel="icon" href="/drum.svg" />
                </Head>
                <Username address={address} />
            </>
        );
    }).catch(() => {
        return (
            <>
                <Head>
                    <title>DRUMM3R</title>
                    <link rel="icon" href="/drum.svg" />                
                </Head>
                <Link href="/">
                    <a className="absolute pt-1 text-xl font-semibold transform -translate-x-1/2 top-1/2 left-1/2">click here to log in</a>
                </Link>
            </>
        );
    })        
}

export default Home;

EN

回答 1

Stack Overflow用户

发布于 2022-07-04 19:15:16

你为什么不试试这个解决方案:

代码语言:javascript
复制
import { useEffect, useState } from "react"

const Home = () => {
  const [address, setAddress] = useState(null)

  useEffect(() => {
    const address = useAddress()
    setAddress(address)
  }, [])

  if (address) {
    return (
      <>
        <Head>
          <title>DRUMM3R</title>
          <link rel="icon" href="/drum.svg" />
        </Head>
        <Username address={address} />
      </>
    )
  }

  return (
    <>
      <Head>
        <title>DRUMM3R</title>
        <link rel="icon" href="/drum.svg" />
      </Head>
      <Link href="/">
        <a
          className="absolute pt-1 text-xl font-semibold transform -
         translate-x-1/2 top-1/2 left-1/2"
        >
          click here to log in
        </a>
      </Link>
    </>
  )
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72861050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档