当然抱歉,如果这个问题有点愚蠢。
在我正在开发的应用程序中,用户应该可以在TextInput上滑动。由于TextInput只监听水龙头,因此我使用了这个要点:https://gist.github.com/MikeShi42/87b65984f0a31e38d553cc056fcda017 (BTW @Michael Shi非常感谢)
但是,一旦我将TextInput更改为SlideTextInput,Clear按钮就不再起作用了。
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组件相比,我没有看到SlideTextInput.js有太大的变化,但我必须遗漏一些可以解释这种不良行为的东西?
ref={this._setNativeRef}
),而是将SlideTextInput引用为字符串(ref="input"
)。我改回来了,瞧。
答案 0 :(得分:0)
查看代码似乎没有将值props发送到原始TextInput。它正在扩展TextInput但它返回另一个组件而不发送值prop。
尝试:
this.refs.input.setText('');
答案 1 :(得分:0)
最后答案很简单。而不是像原始TextInput那样将组件链接到其原生对应物(ref = {this._setNativeRef}),而是将幻灯片文本输入引用到字符串(ref =&#34;输入&#34;)(它&#39;) ; s不是关于我的代码中的道具,它是关于SlideTextInput.js文件本身的)。我改回来了,瞧。