如何清除 SlideTextInput (自定义 TextInput 组件)中的输入



当然,如果这个问题有点愚蠢,我很抱歉。

在我正在开发的应用程序中,用户应该能够在文本输入上滑动。由于TextInput只听点击,我使用了这个要点:https://gist.github.com/MikeShi42/87b65984f0a31e38d553cc056fcda017(顺便说一句,@Michael施感谢吨)

但是,一旦我将文本输入更改为幻灯片文本输入,清除按钮就停止工作。

clearInput() {
    this.setState({text: ''});
}
render() {
    return (
    <Button name='clear' action={this.clearInput} />
    <SlideTextInput 
        style={styles.input} 
        ref='input'
        onChangeText={(text) => this.setState({text: text})}
        placeholder={this.state.placeholder} 
        value={this.state.text} 
        multiline={true} 
        returnKeyType='done' 
        blurOnSubmit={true} />
    )
}

我也尝试了this.refs.input.setNativeProps({text: ''});,而不是仅仅传递一个新的value道具(对于正常的 TextInput,这应该 - 并且已经足够了),并调用forceUpdate() ,但同样无济于事。与原始的 TextInput 组件相比.js我没有看到 SlideTextInput 有太大变化,但我一定缺少一些可以解释这种不良行为的东西吗?

UPD:最后答案很简单。SlideTextInput没有像原始TextInput那样将组件链接到其本机对应项(ref={this._setNativeRef}),而是将其引用为字符串(ref="input")。我把它改回来了,瞧。

查看代码,似乎值属性没有发送到原始的 TextInput。它正在扩展文本输入,但它返回另一个组件而不发送值属性。

尝试:

this.refs.input.setText('');

最后答案很简单。SlideTextInput 没有像原始 TextInput 那样将组件链接到其原生对应项 (ref={this._setNativeRef}),而是将其引用为字符串 (ref="input") (它不是关于我的代码中的 props,而是关于 SlideTextInput.js 文件本身)。我把它改回来了,瞧。

相关内容

  • 没有找到相关文章

最新更新