在next.js中隐藏和显示来自API的特定div

jecbmhm3  于 2023-06-05  发布在  其他
关注(0)|答案(1)|浏览(185)

我正在next.js项目中开发一个下拉菜单,
我做了一个方法来隐藏和显示子菜单的数据,但我不能显示具体的子下拉菜单。下面是代码

import  {useEffect, useState } from "react";

function Header({data}){
    const [showMe, setShowMe] = useState(false);
    function toggle(param){
      console.log(param)
      setShowMe(!showMe);
    };
    return(
        <div className="mobile-header">
              <div className="mobile-menu">
                  <div className="menu-icon">
                  <div className="wrapper">
                      <input type="checkbox" id="navigation" />
                      <label for="navigation">
                           +
                      </label>
                      
                            <nav>
                                <ul>
                                    <li className="menu-heading">
                                        <span>Menu</span>
                                        <span>
                                            <label for="navigation">X</label>
                                        </span>
                                        
                                    </li>
                                    {data.menus.map((post, index) => {
                        return (
                            <li className="menu-list" id={index}>
                                {post.title} <span onClick = {(event)=>toggle({index})} index={index} >+</span>
                                    <ul style={{display: showMe?"block":"none"}} index={index} value={index} className="category-one">
                                        {post.menu_columns.map((subItems, sIndex) => {
                                            return <li index={sIndex}>
                                                {subItems.title}
                                                <span>+</span>
                                                <ul className="category-two">
                                                    {subItems.menu_items.map((x) => {
                                                        return <li>
                                                            {x.title}
                                                        </li>
                                                    })}
                                                </ul>
                                            </li>;
                                         })}
                                    </ul>
                                
                            </li>)})}
                                    
                                   
                                   
                                </ul>
                            </nav>
                            </div>
                        </div>
                    </div>
                   
                </div>
              
            </div>
   )
} 
export default Header;

toggle是一个函数,它负责显示和隐藏数据,在这个函数中传递了一个参数,提供了特定的索引值,我们如何通过使用这个索引值来定位特定的div。

knpiaxh1

knpiaxh11#

下面是一个详细的解决方案,用于隐藏和显示来自Next.js应用程序中的API的特定div:
步骤1:创建Next.js应用程序使用Next.js CLI或从头开始设置Next.js项目创建新的Next.js应用程序。
步骤2:从API获取数据使用Next.js内置的数据获取方法(例如getStaticProps、getServerSideProps或useEffect)从API获取数据,并在Next.js页面或组件中进行获取。例如,您可以使用getStaticProps在构建时获取数据,并将其作为props提供给页面。

// pages/index.js

import React, { useState } from 'react';

const IndexPage = ({ data }) => {
  const [showDiv, setShowDiv] = useState(false);

  const toggleDiv = () => {
    setShowDiv(!showDiv);
  };

  return (
    <div>
      <h1>API Data</h1>
      <button onClick={toggleDiv}>Toggle Div</button>
      {showDiv && <div>{data}</div>}
    </div>
  );
};

export async function getStaticProps() {
  // Fetch data from API
  const res = await fetch('https://api.example.com/data');
  const data = await res.json();

  return {
    props: {
      data,
    },
  };
}

export default IndexPage;

查看更多关于这里作为详细视图----> https://devissuefixer.com/questions/hide-and-show-specific-div-coming-from-api-in-nextjs

相关问题