当状态为字符串时,React Native TextInput 从状态中读取值。但是当它在数量上时失败

React Native TextInput reads value from state when it's in string. But fails when it is in number

不知道是react native的bug TextInput还是我做错了什么。当我尝试将基于状态的初始值显示为 TextInput 上的默认值时,它仅适用于字符串而不适用于数字。

        this.state = {referralCode: 10}
<TextInput value={this.state.referralCode}  />

由于某种原因,这不起作用并显示为空,但它应该从状态中读取整数值。一旦我用一些字符串作为初始值更新状态,TextInput 就会在初始渲染时显示它。

               this.state = {referralCode: 'Rishav'};

 <TextInput value={this.state.referralCode}

/>

现在正好渲染初始状态值,因为它是字符串。

此外, <TextInput value={10}/> 失败但 <TextInput value={'10'}/> 有效

根据documentation。价值道具需要 string 。如果你想使用 state 中设置的数字,你可以这样做

constructor(props) {
    super(props);
    this.state = {
      referralCode: 10
    };
  }

<TextInput
            onChangeText={referralCode => this.setState(referralCode)}
            value={`${this.state.referralCode}`}
            blurOnSubmit={true}
            autoCapitalize="none"
            returnKeyType="done"
          />