React js Calculator的最终结果显示在console.log中,但不在浏览器中

AlecTech

Blockquote我无法在页面上显示结果,但是new1Num和new2Num以及newOper是Blockquote反映的很好。结果仅显示在console.log(result);中;我已经尝试将var结果带到main函数之外,并尝试使用const,还尝试了“ let [result,setNewAnsw] = useState(0);”,就像我对new1Num所做的一样,但还是没有运气。

    import React, { useState } from 'react';
   // If the component accepts a parameter, this is referred to as a "prop."
   // Props allows to pass values INTO my components from a parent document / component.
   function Calculator (props)
   { // Every component should return JSX.
     const [new1Num, setNew1Num] = useState(0);
     const [new2Num, setNew2Num] = useState(0);
     const [newOper, setNewOper] = useState('add');
     // let [result, setNewAnsw] = useState(0);  
     var result;
     const onFormSubmit = event => 
     {
       event.preventDefault();
   
       console.log(new1Num);
       const a = parseFloat(new1Num);
   
       console.log(newOper);
   
       console.log(new2Num);
       const b = parseFloat(new2Num);
   
       let result;
       if (newOper == 'add'){
         result = a + b;
         console.log(result);
       }
       else if (newOper == 'subtract'){
         result = a - b;
       }
       else if (newOper == 'divide' && b !=0){
         result = a / b;
       }
       else if (newOper == 'multiply'){
         result = a * b;
       }
       return newResult = result; //IN THIS SECTION I CAN'T TAKE MY RESULT TO RENDER INSIDE DOM
     }
     let heading = props.heading;
     let input1 = props.input1;
     let input2 = props.input2;
     let newResult = props.newResult;
     return (
       <div>
         <h1> { heading } </h1>
         <form onSubmit = {onFormSubmit}> 
         <h2> { input1 } </h2>
         <input 
         type="number" min="0" step="1" 
         onChange={e => { setNew1Num( e.target.value ) }}
         value={new1Num}
         className='field' />
          <h2>Operator</h2>
           <select 
           onChange={e => { setNewOper( e.target.value ) }}
           value={newOper}
           className='oper' >
             <option value='add'>+</option>
             <option value='subtract'>-</option>
             <option value='divide'>/</option>
             <option value='multiply'>*</option>
           </select>
           <h2> {input2}</h2>
           <input 
         type="number" min="0" step="1" 
         onChange={e => { setNew2Num( e.target.value ) }}
         value={new2Num}
         className='field' />
         <h2></h2>
         <input type='submit' className='submitBtn success' value='Submit'/>
         <h3>RESULT: 
           {new1Num}
           {newOper} 
           {new2Num} 
           {newResult}
         </h3>
         </form>
       </div>
     );//new1Num and newOper and new2Num are populating inside browser just fine
   }
   export default Calculator
德鲁·里斯(Drew Reese)

为了将结果发布到页面,react需要重新呈现。这可以通过将结果保存为状态并在完成计算时进行更新来实现。

使用const [result, setNewAnsw] = useState(0);设置/访问的结果,并setNewAnsw(result)在窗体的onFormSubmit回调。删除let newResult = props.newResult;作为newResult不作为道具过去了,它的计算状态。另外,使用“ ===” vs“ ==”进行比较。

...
const [result, setNewAnsw] = useState(0);

const onFormSubmit = (event) => {
  event.preventDefault();

  console.log(new1Num);
  const a = parseFloat(new1Num);

  console.log(newOper);

  console.log(new2Num);
  const b = parseFloat(new2Num);

  let result;
  if (newOper === "add") {
    result = a + b;
    console.log(result);
  } else if (newOper === "subtract") {
    result = a - b;
  } else if (newOper === "divide" && b) { // b any value other than 0 is truthy!
    result = a / b;
  } else if (newOper === "multiply") {
    result = a * b;
  }

  setNewAnsw(result);
};
...

编辑react-js计算器最终结果显示在控制台日志中,但不在浏览器中

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

javascript 变量显示在 console.log 中,但不在浏览器输出中

来自分类Dev

我的代码使用 console.log 离线运行,但不在浏览器中

来自分类Dev

下载锚标签在浏览器中打开文件,但不在 React 组件中下载

来自分类Dev

Beta 版应用程序显示在浏览器中,但不在 Google Play 中?

来自分类Dev

在浏览器中不显示图像-React

来自分类Dev

THREE.js不在浏览器中呈现

来自分类Dev

Node.js在浏览器中显示JSON文件

来自分类Dev

Chrome浏览器检查器在AVD中显示Android Webview,但不在实际设备上显示

来自分类Dev

浏览器console.log()未显示在终端中

来自分类Dev

如果我在浏览器中禁用 javascript,则内容 React.js 将不会加载

来自分类Dev

d3pie在JS Bin中工作,而不在浏览器中工作

来自分类Dev

express.js和react.js cookie已保存到浏览器但不起作用?

来自分类Dev

如何使用 React 在浏览器中显示控制台应用程序?

来自分类Dev

本机浏览器和Node.js中的JavaScript函数声明获得不同的结果

来自分类Dev

在React中如何使用@ auth0 / auth0-spa-js通过浏览器刷新来保持登录

来自分类Dev

如何通过浏览器历史记录在React JS中触发页面更改事件?

来自分类Dev

简单的Angular JS应用程序未显示在浏览器中

来自分类Dev

我在使用Node JS在浏览器中显示HTML响应数据时遇到问题

来自分类Dev

在浏览器中禁用显示.css和.js文件内容

来自分类Dev

没有在浏览器中显示中枢js Todo代码

来自分类Dev

我的图表未使用流星中的chart.js显示在浏览器屏幕上

来自分类Dev

Chessboard.js板图像未显示在浏览器中

来自分类Dev

在浏览器中不显示非常简单的d3.js折线图

来自分类Dev

使用ArcGIS JS API在浏览器中显示ArcGIS形状文件(* .shp)

来自分类Dev

node.js-推送新代码后,浏览器中显示的页面不会更改

来自分类Dev

Three.js html文件未在Eclipse的“ Web浏览器”中显示

来自分类Dev

图像显示在浏览器中,但无法通过代码下载 (node.js)

来自分类Dev

如何使用React JS在段落中显示结果

来自分类Dev

使用itextsharp突出显示pdf中的单词,而不在浏览器中显示突出显示的单词

Related 相关文章

  1. 1

    javascript 变量显示在 console.log 中,但不在浏览器输出中

  2. 2

    我的代码使用 console.log 离线运行,但不在浏览器中

  3. 3

    下载锚标签在浏览器中打开文件,但不在 React 组件中下载

  4. 4

    Beta 版应用程序显示在浏览器中,但不在 Google Play 中?

  5. 5

    在浏览器中不显示图像-React

  6. 6

    THREE.js不在浏览器中呈现

  7. 7

    Node.js在浏览器中显示JSON文件

  8. 8

    Chrome浏览器检查器在AVD中显示Android Webview,但不在实际设备上显示

  9. 9

    浏览器console.log()未显示在终端中

  10. 10

    如果我在浏览器中禁用 javascript,则内容 React.js 将不会加载

  11. 11

    d3pie在JS Bin中工作,而不在浏览器中工作

  12. 12

    express.js和react.js cookie已保存到浏览器但不起作用?

  13. 13

    如何使用 React 在浏览器中显示控制台应用程序?

  14. 14

    本机浏览器和Node.js中的JavaScript函数声明获得不同的结果

  15. 15

    在React中如何使用@ auth0 / auth0-spa-js通过浏览器刷新来保持登录

  16. 16

    如何通过浏览器历史记录在React JS中触发页面更改事件?

  17. 17

    简单的Angular JS应用程序未显示在浏览器中

  18. 18

    我在使用Node JS在浏览器中显示HTML响应数据时遇到问题

  19. 19

    在浏览器中禁用显示.css和.js文件内容

  20. 20

    没有在浏览器中显示中枢js Todo代码

  21. 21

    我的图表未使用流星中的chart.js显示在浏览器屏幕上

  22. 22

    Chessboard.js板图像未显示在浏览器中

  23. 23

    在浏览器中不显示非常简单的d3.js折线图

  24. 24

    使用ArcGIS JS API在浏览器中显示ArcGIS形状文件(* .shp)

  25. 25

    node.js-推送新代码后,浏览器中显示的页面不会更改

  26. 26

    Three.js html文件未在Eclipse的“ Web浏览器”中显示

  27. 27

    图像显示在浏览器中,但无法通过代码下载 (node.js)

  28. 28

    如何使用React JS在段落中显示结果

  29. 29

    使用itextsharp突出显示pdf中的单词,而不在浏览器中显示突出显示的单词

热门标签

归档