【问题标题】:How can I display the results of a function in React?如何在 React 中显示函数的结果?
【发布时间】:2022-01-14 06:01:28
【问题描述】:

我想在输入后在段落标记中显示函数的结果。这是我尝试过的:

import React, { useState } from "react";

const Measurement = () => {
const [brightness, setBrightness] = useState(0);
const [darkness, setDarkness] = useState(0);

const checkLumens = () => {
   if (brightness > 120) {
     return "High";
   }
   if (darkness < 80) {
     return "Low";
   } 
   else {
     return "Not Set";
   }
};

return (
<div>
  <input
    type="number"
    onChange={(event) => setBrightness(event.target.value)}
  />
  <button>Show</button>
  <p>{checkLumens()}</p> //Hide by default and show {checkLumens()} after button click 
 </div>
 );
};

export default Measurement;

感谢您的帮助!

【问题讨论】:

    标签: javascript reactjs jsx


    【解决方案1】:

    只需添加一个新的状态变量:

    import React, { useState } from "react";
    
    const Measurement = () => {
    const [brightness, setBrightness] = useState(0);
    const [darkness, setDarkness] = useState(0);
    const [showLumens, setShowLumens] = useState(false);
    
    const checkLumens = () => {
       if (brightness > 120) {
         return "High";
       }
       if (darkness < 80) {
         return "Low";
       } 
       else {
         return "Not Set";
       }
    };
    
    return (
    <div>
      <input
        type="number"
        onChange={(event) => setBrightness(event.target.value)}
      />
      <button onClick={() => setShowLumens(true)}>Show</button>
      <p>{showLumens ? checkLumens() : null}</p> //Hide by default and show {checkLumens()} after button click 
     </div>
     );
    };
    
    export default Measurement;
    

    【讨论】:

      【解决方案2】:

      import React, { useState, useEffect } from "react";
      
      const Measurement = () => {
      const [brightness, setBrightness] = useState(0);
      const [darkness, setDarkness] = useState(0);
      const [lumens, setLumens] = useState('Not Set')
      const [show, setShow] = useState(false)
      
      useEffect(() => {
        if (brightness > 120) {
           setLumens("High");
         }
         if (darkness < 80) {
           setLumens("Low");
         } 
         else {
           setLumens("Not Set");
         }
      }, [darkness, brightness])
      
      return (
      <div>
        <input
          type="number"
          onChange={(event) => setBrightness(event.target.value)}
        />
        <button onClick={() => setShow(true)}>Show</button>
        <p>{show && lumens}</p> //Hide by default and show {checkLumens()} after button click 
       </div>
       );
      };
      
      export default Measurement;

      【讨论】:

        【解决方案3】:

        使用 useState 创建一个状态来显示和隐藏流明值,并在按钮单击时更改该值

        const Measurement = () => {
        const [brightness, setBrightness] = useState(0);
        const [darkness, setDarkness] = useState(0);
        const [showLumens, setShowLumnes] = useState(false);
        const checkLumens = () => {
           if (brightness > 120) {
             return "High";
           }
           if (darkness < 80) {
             return "Low";
           } 
           else {
             return "Not Set";
           }
        };
        
        return (
        <div>
          <input
            type="number"
            onChange={(event) => setBrightness(event.target.value)}
          />
          <button onClick={()=>setShowLumnes(true)}>Show</button>
          {showLumens && <p>{checkLumens()}</p>} 
         </div>
         );
        };
        
        export default Measurement;
        

        【讨论】:

        • 感谢这项工作!你知道用按钮重置所有值的方法是什么吗?
        • 添加新按钮并在其 onClick 函数上将默认值设置为状态。喜欢setBrightness (0); setDarkness (0); setShowLumnes (false)
        • 我明白了,我会试试那个方向
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-09
        • 2015-11-03
        相关资源
        最近更新 更多