简体   繁体   English

如何使用 reactjs 增加不同组件元素的字体大小

[英]How do I increase the font size of a different components element using reactjs

So I am trying to increase the font size of the paragraph element in the content.jsx file using the button with the onClick of handleFontSize in the header.jsx.因此,我尝试使用 header.jsx 中的 handleFontSize 的 onClick 按钮来增加 content.jsx 文件中段落元素的字体大小。 Right now my issue is that the increaseFont function in App.jsx is not working correctly.现在我的问题是 App.jsx 中的 increaseFont function 无法正常工作。 It is only staying at 12 each time I click the button.每次单击按钮时,它只停留在 12 点。 I want it to go up two font sizes each time so it would make the fontSize 12px(default) then 14px then 16px and so on.我希望它每次 go 增加两个字体大小,这样它会使 fontSize 12px(默认)然后 14px 然后 16px 等等。

Header.jsx file Header.jsx 文件

import React from "react"; react

function Header ({ loggedIn, handleLoggedInClick, handleFontSize }) {
  return (
    <div>
      <button onClick={handleLoggedInClick}>
        {loggedIn ? "Log Out" : "Log In"}
      </button>
      <button onClick={handleFontSize}>
        Increase
      </button>
    </div>
  );
}

export default Header;

Content.jsx file内容.jsx 文件

import React from "react";

function Content ({ loggedIn, fontSize }) {
  return loggedIn && <p style={{fontSize:{fontSize}}}>CONTENT</p>;
}

export default Content;

App.jsx file应用程序.jsx 文件

import React, { useState } from "react";
import Content from "./Content";
import Header from "./Header";

function App () {
  const [loggedIn, setLoggedIn] = useState(false);
  const [newFontSize, setFontSize] = useState(12);
  const toggleLoggedIn = () => setLoggedIn(!loggedIn);
  
  const increaseFont = () => setFontSize(newFontSize + 2)
  
  
  return (
    <div>
      <Header loggedIn={loggedIn} handleLoggedInClick={toggleLoggedIn} />
      <Content loggedIn={loggedIn} handleFontSize={increaseFont} fontSize={newFontSize} />
    </div>
  );
}

export default App;

Try this:尝试这个:

App.js应用程序.js

import React, { useState } from "react";
import Content from "./Content";
import Header from "./Header";

function App () {
  const [loggedIn, setLoggedIn] = useState(false);
  const [newFontSize, setFontSize] = useState(12);
  const toggleLoggedIn = () => setLoggedIn(!loggedIn);
  
  const increaseFont = () => setFontSize(newFontSize + 2)
  
  
  return (
    <div>
      <Header loggedIn={loggedIn} handleLoggedInClick={toggleLoggedIn} handleFontSize={increaseFont}  />
      <Content loggedIn={loggedIn} fontSize={newFontSize} />
    </div>
  );
}

export default App; 

Content.jsx内容.jsx

import React from "react";

function Content ({ loggedIn, fontSize }) {
  return loggedIn && <p style={{fontSize:fontSize}}>CONTENT</p>;
}

export default Content;

Header.jsx Header.jsx

import React from "react"; react

function Header ({ loggedIn, handleLoggedInClick, handleFontSize }) {
  return (
    <div>
      <button onClick={handleLoggedInClick}>
        {loggedIn ? "Log Out" : "Log In"}
      </button>
      <button onClick={handleFontSize}>
        Increase
      </button>
    </div>
  );
}

export default Header;

Try this and let me know if it works, i only edited the first two files试试这个,让我知道它是否有效,我只编辑了前两个文件

You're passing handleFontSize to the wrong component.It should be passed to Header component您将 handleFontSize 传递给错误的组件。它应该传递给 Header 组件

   <div>
      <Header loggedIn={loggedIn} handleLoggedInClick={toggleLoggedIn} handleFontSize={increaseFont} />
      <Content loggedIn={loggedIn} fontSize={newFontSize} />
    </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM