React Native-占位符的长度优先于Text Input的高度

时间:2019-07-10 02:47:42

标签: javascript android typescript react-native textinput

问题:

我的文本输入占位符最多可以包含2000个字符。只要我的用户开始输入文本输入,占位符就会消失,但是文本输入 height不会自动缩小

AFAIK,根据占位符文本的原始长度来设置多行文本输入的高度。反正有解决这个问题的方法吗?

我的代码:

import { Input } from 'react-native-elements';

interface Props {
    placeHolder: string;
    onChangeText: (text: string) => void;
}

const MyTextInput = (inputs: Props) => (
    <View>
        <Input
            inputStyle={{ textAlignVertical: 'top' }}
            placeholder={inputs.placeHolder}
            onChangeText={(text) => inputs.onChangeText(text)}
            multiline={true}
            maxLength={2000}
        />
    </View>
);

export default MyTextInput;

屏幕截图:

长占位符: enter image description here

用户输入文字: enter image description here

文字输入高度不会缩小: enter image description here

3 个答案:

答案 0 :(得分:0)

在inputStyle上添加minHeight和maxHeight应该可以解决您的问题。

答案 1 :(得分:0)

设置clearTextOnFocus道具可以正常工作

<Input
        clearTextOnFocus={true}
        inputStyle={{ textAlignVertical: 'top' }}
        placeholder={inputs.placeHolder}
        onChangeText={(text) => inputs.onChangeText(text)}
        multiline={true}
        maxLength={2000}
    />

答案 2 :(得分:0)

最后,我添加了一个额外的{ "queryPlanner" : { ... }, "executionStats" : { "executionSuccess" : true, "nReturned" : 3, "executionTimeMillis" : 0, ... 道具,以便每当用户开始输入时,value都会更新inputs.onChangeText(text),并且输入的高度将自动缩放以适合内容。当value为空或清除时,只需显示value

placeHolder