Nativebase React Native 为啥我不能在输入中传递一个数字

Posted

技术标签:

【中文标题】Nativebase React Native 为啥我不能在输入中传递一个数字【英文标题】:Nativebase React Native why can't i pass a number on an inputNativebase React Native 为什么我不能在输入中传递一个数字 【发布时间】:2020-11-17 10:33:21 【问题描述】:

我正在使用 react native nativebase,我想将一个数字传递给我的输入值,但我收到一个错误,提示我无法将数字传递给字符串。

<Input
          keyboardType="numeric"
          onChangeText=(text) => setTarget(text)
          value=target
        />

现在如果我这样做。

<Input
          keyboardType="numeric"
          // onChangeText=(text) => setTarget(text)
          value="target"

错误消失。 这是值的定义

const [target, setTarget] = useState<number>(0);

【问题讨论】:

因为在您的代码中。你初始化变量的类型是数字。但在 InputText 中,输出始终是一个字符串。您可以将输出转换为数字或将变量更改为字符串,以便修复它 【参考方案1】:

您将target 状态声明为数字,onChangeText 中的参数始终是字符串。因此,首先将该数字状态分配为输入中的字符串,当值发生变化时将其转换为数字,如下所示:

<Input
  keyboardType="numeric"
  onChangeText=(text) => setTarget(parseInt(text, 10)) // conver to number
  value=target.toString() // convert to string
/>

【讨论】:

这个解决方案应该是官方文档的一部分,创建数字输入是一个很常见的任务,但这是迄今为止我见过的最干净的解决方案

以上是关于Nativebase React Native 为啥我不能在输入中传递一个数字的主要内容,如果未能解决你的问题,请参考以下文章

Nativebase React Native 为啥我不能在输入中传递一个数字

NativeBase准备工作

Native Base Picker [React Native] 项目的条件渲染

React-Native-Maps:如何动画来协调?

react native - android - Picker 有下划线

我们用Flutter重写了一个React Native应用