首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >next.js代码在run中工作,但不运行build。

next.js代码在run中工作,但不运行build。
EN

Stack Overflow用户
提问于 2022-07-05 19:38:51
回答 2查看 349关注 0票数 -1

问题在于run dev中的useAddress()函数,当控制台登录时,它返回未定义的、未指定的、然后地址,但是在run /start中,它只是返回未定义的。我该怎么解决这个问题。

代码语言: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 address = useAddress();

    console.log(address)
    
        if (address) {
            return (
                <>
                    <Head>
                        <title>home</title>
                        <link rel="icon" href="/drum.svg" />
                    </Head>
                    <Username address={address} />
                </>
            );
        } else {
            return (
                <>
                    <Head>
                        <title>home</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

回答 2

Stack Overflow用户

发布于 2022-07-05 19:44:11

命令式代码在反应中是不可预测的。您应该使用useEffect(()=>{console.log(address)},[]),而且在这两种设置中,它的工作方式可能是相同的。

票数 0
EN

Stack Overflow用户

发布于 2022-07-05 20:50:48

我希望这是可行的:

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

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

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

   
    
        if (address) {
            return (
                <>
                    <Head>
                        <title>home</title>
                        <link rel="icon" href="/drum.svg" />
                    </Head>
                    <Username address={address} />
                </>
            );
        } else {
            return (
                <>
                    <Head>
                        <title>home</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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72874686

复制
相关文章

相似问题

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