我是新人,他反应原生,并且很难想到不使用继承,而是使用继承。
我的场景:我正在创建一个显示一个InputText的组件(focusedTextInput)。我的组件只是添加了改变焦点上TextInput样式的功能。
我在另一个包含五个focusedTextInput的组件中使用FocusedTextInput,我将它们配置为一次只有一个字符,并在输入字符时自动跳转到下一个FocusedTextInput(使用focus()方法)。
我遇到问题的地方是我的FocusedTextInput没有焦点方法(我不想公开TextInput)。
那么我是否需要在FocusedTextInput上展示可能从TextInput使用的所有方法,还是有更好的方法?
答案 0 :(得分:0)
关于堆栈溢出,请参阅此答案React set focus on input after render。
我认为这适用于本地反应,但它确实在网络中有效。
它向您展示了如何将ref
设置为组件。并且在CDM中将重点放在该组件上。
扩展它的工作方式,以便你可以将焦点设置为特定的输入(如果有很多)是添加一个名为setFocused的道具
将CDM更改为
// Set the focus on first render.
componentDidMount(){
if (this.props.setFocus) {
this.nameInput.focus();
}
}
// focus if the prop changes
componentWillRecieveProps(nextProps) {
if (this.nextProps.setFocus) {
this.nameInput.focus();
}
}