为什么我的“文本输入”字段被锁定以进行编辑?

时间:2019-07-18 11:56:01

标签: javascript react-native

我仍然对本机反应还很陌生,并且在同时使用选择器和文本输入时遇到了问题。

我得到了汽车列表,当我选择了一辆特定的汽车时,在下面的字段中设置了该选定汽车的公里数。

问题在于该字段需要被允许编辑,也就是说,用户希望更改自己可以行驶的汽车的公里数。

但是现在我的输入字段被禁止编辑,我制作了一张gif图像,显示了当我选择一辆汽车并尝试编辑公里数时,它不起作用。

Current behavior

在我的代码下面,我不知道为什么它不能在unsnack.io上运行,所以这就是我将其全部放在这里的原因:

1. inline source maps
2. source map files referenced by a `sourceMappingURL=` comment
3. source map files with the same name (plus .map) in the same directory

此gif具有加速录制功能,但是您可以看到我单击该按钮删除了该数字,但没有任何反应。

Accelerated gif

2 个答案:

答案 0 :(得分:0)

我认为问题在于您在value上提供了TextInput

您可以在此处阅读:https://facebook.github.io/react-native/docs/textinput#value

  

要为文本输入显示的值。 TextInput是受控的   组件,这意味着本地值将被强制与此匹配   价值道具(如果提供)。对于大多数用途来说,这很好用,但是在某些情况下   可能导致闪烁的情况-一种常见的原因是阻止编辑   通过保持价值不变。除了简单地设置相同   值,或者设置editable = {false},或者设置/更新maxLength以防止   不需要的编辑而不会闪烁。

很抱歉,我无法为您测试,但请尝试设置editable={true}。如果不起作用,请删除value并使用另一种通过JavaScript的方法从Picker中获取value并显示在那里。

答案 1 :(得分:0)

使用以下方式更改您的TextInput

    <TextInput
        style={styles.input}
        value={km_selected}
        keyboardType={'numeric'}
        placeholder={"0"}
        onChangeText={(text) => { this.setState({ km_selected: text }) }}
        placeholderTextColor={'#000'}
        underlineColorAndroid='transparent'
    />