在我的React Native应用程序中,我有一个type="numeric"
的TextInput。当页面加载时,我从服务器获得一个数字值,我将使用defaultValue
在TextInput中预填充该值。
const [ val, setVal ] = useState(100)
<TextInput
defaultValue={val}
onChange={setVal}
type="numeric"
value={val}
/>
这将抛出一个错误,指出defaultValue
只能是字符串或未定义。
- 我是否应该将服务器的值设置为字符串,然后在将其发送到服务器之前将其设置回number?
- 如果我设置了
type="numeric"
,那是不是会把数字和字符串混在一起,或者数字仍然只是在一个字符串中? - 为什么RN不允许
defaultValue
这样的数字?
1条答案
按热度按时间0yg35tkg1#
我自己也想知道这一点。这可能与javascript和任何语言(如Java/Kotlin/Swift)的数字类型之间的差异有关。我认为会有一种数字类型类似于javascript的数字(在java中,我认为这可能是
double
或float
),但由于textinput不支持它,我认为事情并不像看起来那么简单。如果你想让你的州保持数字类型,那么只需要在
onChangeText
中强制转换为number,并对value
和defaultValue
使用toString: