当然,如果这个问题有点愚蠢,我很抱歉。
在我正在开发的应用程序中,用户应该能够在文本输入上滑动。由于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 文件本身)。我把它改回来了,瞧。