【问题标题】:format number in react input反应输入中的格式数字
【发布时间】:2021-04-14 13:30:31
【问题描述】:

我需要在反应中格式化输入,添加后缀“g”。对于结果输入,它可以,但是对于 input1 和 input2,当我将类型更改为文本时,它无法正常工作。链接码框:https://codesandbox.io/s/eager-meitner-ez7wo?file=/src/index.js

非常感谢你们。

import React, {useState} from 'react'
import ReactDOM from 'react-dom'

function App() {
const [input1, setInput1] = useState(2);
const [input2, setInput2] = useState(3);

const updateInput1 = (event) => {
  const inputValue1 = event.target.value
  setInput1(parseInt(inputValue1))
}

const updateInput2 = (event) => {
  const inputValue2 = event.target.value
  setInput2(parseInt(inputValue2))
}

  const addInputs =()=> input1 + input2;

  return <>
  <label>
    Input1
  </label>
  <input
  type="number"
  onChange={updateInput1}
  value={input1}
  >
  </input>

  <label>
    Input2
  </label>
  <input
  type="number"
  onChange={updateInput2}
  value={input2}
  >
  </input>

  <label>
    Result
  </label>
  <input
  type="text"
  value={addInputs() + "g"}
  >
  </input>
  </>
}

ReactDOM.render(<App />, document.getElementById('root'))


【问题讨论】:

  • 我假设您正在尝试将它们相加,因此如果 input1 = 5 且 input2 = 10,结果应输出 '15g'
  • 是的,但最重要的是我有兴趣给它格式,因为函数只是一个例子

标签: reactjs input format


【解决方案1】:

event.target.value 正在返回一个字符串。修复代码所需要做的就是将两个输入都转换回整数,然后再像这样设置:

 const updateInput1 = (event) => {
    const inputValue1 = event.target.value
    setInput1(parseInt(inputValue1))
 }

 const updateInput2 = (event) => {
    const inputValue2 = event.target.value
    setInput2(parseInt(inputValue2))
 }

【讨论】:

  • 非常感谢,现在可以正常使用了,但我需要格式,后缀 g
  • 你想如何格式化后缀g?我很乐意提供帮助!
  • 你想让它看起来像 Input1 2g Input2 3g Result 5G?
  • 您不能在 type="number" 的输入中包含非数字字符 我可以向您展示如何在 type="text" 的输​​入中对其进行格式化,但您会丢失 +1、-1功能
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-07
  • 2023-01-04
  • 1970-01-01
  • 2011-09-24
  • 2012-11-13
  • 2021-08-25
  • 1970-01-01
相关资源
最近更新 更多