reactjs - 如何在类型为 ="number"的 TextInput 中仅输入整数值

标签 reactjs material-ui

我想使用 material-UI TextInput 仅输入整数值(不是十进制值)。
我按如下方式使用了 TextInput,但它仍然允许使用十进制数。
我怎样才能做到这一点?

<TextField id="outlined-value" 
           type="number"
           label="Value" 
           className={classes.standartInputMargin}
           value={this.state.allowedValue}
           margin="normal" 
           variant="outlined"
           onChange={(event) => Number.isInteger(event.target.value) 
               ? this.setState({ allowedValue: event.target.value }) 
               : null} />

最佳答案

您将原始值传递给 setState , 而不是整数值。由于您的输入仅接受数字,因此您只需检查小数位即可。

onChange = (e) => {
  const { value } = e.target;

  if (value.match('.')) { 
    this.setState({ value: parseInt(value) })
  } 

  return null;
}

或者,如果您只有一个常规输入,这样的操作将只允许您输入整数。
onChange = e => {
  const { value } = e.target;
  const parsedInt = parseInt(value);

  if (parsedInt) {
    this.setState({ value: parsedInt });
  }

  return null;
};

关于reactjs - 如何在类型为 ="number"的 TextInput 中仅输入整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52517203/

相关文章:

javascript - 为什么我应该在 JSX 返回中指定换行元素 : <div> or <React. Fragment> 或 <>?

javascript - React 路由器导航栏导航

javascript - 将material-ui封装到自定义组件中

javascript - React-router 在导航栏中添加链接

css - 如何在 Material ui makeStyles 中使用 @supports css 规则?

reactjs - Next.js getStaticProps 与 SWR "Error serializing ` .initialData.config.transformRequest[0 ]` returned from ` getStaticProps`"

javascript - 单独的 ApolloProvider 组件渲染与 ReactDOM 给出错误

reactjs - 如何使用 React 测试库测试 Material UI 选择组件

javascript - 警告 : Failed prop type: The prop `todos[0].title` is marked as required in `TodoList` , 但其值为 `undefined`

javascript - 新版本的 Gatsby 不支持 Material UI 吗?