小编Ibr*_*him的帖子

使用Next.js反应onClick事件处理程序不起作用

我正在制作Reddit克隆,并且正在使用Next.js,以便呈现其服务器端。我开始时没有使用Next.js,当我了解了它之后,我立即切换到了它。

我创建了一个自定义,_app.js以便页眉和侧边栏出现在每个页面上,并且它充当保存应用程序状态的最顶层组件。后来还不太行。

这里是.project/src/pages/_app.js

import App, { Container } from 'next/app';

// Components
import Header from '../components/Header/Header';

const MainLayout = props => (
  <React.Fragment>
    <Header
      isSidebarOpen={props.isSidebarOpen}
      sidebarToggle={props.sidebarToggle}
    />
    {props.children}
  </React.Fragment>
);

export default class MyApp extends App {
  static async getInitialProps({ Component, router, ctx }) {
    let pageProps = {};

    if (Component.getInitialProps) {
      pageProps = await Component.getInitialProps(ctx);
    }

    return { pageProps };
  }

  state = {
    isSidebarOpen: true
  };

  sidebarToggle = () => {
    this.setState({ isSidebarOpen: !this.state.isSidebarOpen …
Run Code Online (Sandbox Code Playgroud)

javascript serverside-javascript reactjs server-side-rendering nextjs

6
推荐指数
1
解决办法
971
查看次数

使用异步/等待返回值意外获取 API

这是函数:

const getUserIP = async () => {
  let response = await fetch('https://jsonip.com/');
  let json = await response.json();

  console.log(json.ip)
  return json.ip;
};
Run Code Online (Sandbox Code Playgroud)

在控制台中,IP 地址按预期记录。但是,当我将“IP 地址”保存到变量时:

const ip = getUserIP();
Run Code Online (Sandbox Code Playgroud)

然后ip在控制台输入,值显示为:

Promise { <state>: "fulfilled", <value>: "/* my IP here*/" }
Run Code Online (Sandbox Code Playgroud)

我在 YouTube 上观看过视频,这些视频使用了相同的逻辑/语法,尽管 API 不同,但它确实有效。我搜索了 Google 和 SO,但找不到有相同问题的线程。

我缺少什么?

谢谢。

javascript promise fetch-api

3
推荐指数
1
解决办法
5953
查看次数