我已经制作了一个Reaction应用程序,以下是我的代码和三个组件:

App.js

import React from "react";
import "./App.css";
import mediumCompo from "./mediumCompo";
import ldComp from "./Components/ldComp";
 
function App() {
  const viewportContext = React.createContext({});

  const ViewportProvider = ({ children }) => {
    const [width, setWidth] = React.useState(window.innerWidth);
    const [height, setHeight] = React.useState(window.innerHeight);
    const handleWindowResize = () => {
      setWidth(window.innerWidth);
      setHeight(window.innerHeight);
    };

    React.useEffect(() => {
      window.addEventListener("resize", handleWindowResize);
      return () => window.removeEventListener("resize", handleWindowResize);
    }, []);

    return (
      <viewportContext.Provider value={{ width, height }}>
        {children}
      </viewportContext.Provider>
    );
  };

  const useViewport = () => {
    const { width, height } = React.useContext(viewportContext);
    return { width, height };
  };

  const MyComponent = () => {
    const { width } = useViewport();
    const breakpoint = 900;
    return width < breakpoint ? <mediumCompo/> : <ldComp/>;
  };
  return (
    <>
      <h1>Hello</h1>
      <ViewportProvider>
        <MyComponent />
      </ViewportProvider>
    </>
  );
}

export default App;

ldComp.jsx

import React from 'react'

const ldComp = ( 
        <>
        <h1>LD</h1>
        </>
     );
export default ldComp;

mediumCompo.jsx

import React from 'react'

function mediumCompo() {
    return ( 
        <>
        <h1>MD</h1>
        </>
     );
}

export default mediumCompo;

当我放大/缩小时,我在渲染网站中看不到这个.

几天前我确实做了这样的网站,我从那里复制了我的代码, 此外,2小时前它还运行良好,但现在我能看到的主要问题是:

enter image description here

正如你所看到的,无论我把我的组件放在哪里,它永远不会被使用!! 我甚至试着在我的App.js中恰好在<h1>Hello</h1>岁之后使用这个 还是不管用!

推荐答案

在纠正了这几个错误之后,它就起作用了.

所有Reaction组件名称MUST都应以大写字母开头:

  1. ldComp->;LdComp
  2. mediumCompo->;MediumCompo

你的LdComp不是一个函数.这只是一个常量的表达.需要更正为Const Function Expression分:

import React from 'react'

const LdComp = () => ( 
        <>
        <h1>LD</h1>
        </>
);
export default LdComp;

工作演示:

Edit quizzical-blackburn-ldq44c

Javascript相关问答推荐

将json数组项转换为js中的扁平

如何分配类型脚本中具有不同/额外参数的函数类型

react/redux中的formData在expressjs中返回未定义的req.params.id

格式值未保存在redux持久切片中

按下同意按钮与 puppeteer 师

浮动Div的淡出模糊效果

如何将Map字符串,布尔值转换为{key:string;value:bo布尔值;}[]?<>

Mongoose post hook在使用await保存时不返回Postman响应

使用POST请求时,Req.Body为空

如何在每次单击按钮时重新加载HighChart/设置HighChart动画?

如何在Java脚本中对列表中的特定元素进行排序?

警告框不显示包含HTML输入字段的总和

基于产品ID更新条带产品图像的JavaScript命中错误

使用jQuery find()获取元素的属性

使用可配置项目创建网格

未找到用于 Select 器的元素:in( puppeteer 师错误)

递增/递减按钮React.js/Redux

如何阻止外部脚本进入顶层导航

无法向甜甜圈图表上的ChartJSImage添加可见标签

在ReactJS上挂载组件时获得多个身份验证请求