numberOfLines TextInput 属性不起作用

Ank*_*shi 8 javascript android textinput reactjs react-native

我在其中创建了一个应用程序,react-native并且可以选择在消息选项中聊天。当我在 TextInput 内部单击并键入两行时,上面的行被隐藏。为了解决这个问题,我在文档numberOfLines属性中看到了它,但它不起作用。

这是我的代码:

<TextInput

                ref='textInput'
                multiline={true}
                numberOfLines: {5}
                onChangeText={this.onChangeText}
                style={[styles.textInput, {height: context.props.textInputHeight}]}
                placeholder={context.props.placeholder}
                placeholderTextColor="#5A5A5A"
                value={context.state.text}/>
Run Code Online (Sandbox Code Playgroud)

我也在getDefaultProps函数中尝试过:

getDefaultProps() {
    return {
      placeholder: 'Type a message...',
      navHeight: 70,
      textInputHeight: 44,
      numberOfLines:5,
      maxHeight: Screen.height,
    };
  },
Run Code Online (Sandbox Code Playgroud)

但没有奏效。

Mad*_*oon 16

恢复:

<TextInput
  ...
  numberOfLines={Platform.OS === 'ios' ? null : numberOfLines}
  minHeight={(Platform.OS === 'ios' && numberOfLines) ? (20 * numberOfLines) : null}
/>
Run Code Online (Sandbox Code Playgroud)


Dav*_*vid 5

您可以使用maxHeightminHeight接受您想要的东西。对于标准文本 fontSize,指定maxHeight={60}将使 TextInput 在 3 行后可滚动。这对于 IOS 很有用 - 对于 Android,你可以使用numberOfLinesprop.


zvo*_*ona 2

你有numberOfLines: {5},应该有numberOfLines={5}。或者这只是SO中的一个错字?

另外,造型textAlignVertical: 'top'也很推荐。

  • 当我删除样式 `style={[styles.textInput, {height: context.props.textInputHeight}]}` 中的高度并且如果我添加 `textAlignVertical: 'top'` 时它不会显示我写入的文本文本框 (2认同)