无法从 ref setNativeProps 更改文本样式



我想在我的一些文本输入焦点时更改组件的一些样式,

我使用世博会 34.0.0

我尝试过两种方法:使用 ref 和使用状态,两者都有我需要了解的问题。

到目前为止,当我通过 TextInput 中的函数更改它们时onFocus<TextInput>中的样式按预期工作。

但是当我尝试通过包含或使用按钮通过调用refTitle.current.setNativeProps()来使用相同的方法来更改refTitle<Text>样式时,每次我尝试更改文本样式时,它只返回 refTitle.current.setNativeProps 是未定义的。

const refTitle = useRef(null)
const refUser = useRef(null)
return (
<Card>
<Margin>
<Text ref={ refTitle } style={ styles.title }>as</Text>
<TextInput
ref={ refUser }
style={ [styles.input] }
onSubmitEditing={ () => refPassword.current.focus() }
onFocus={ () => refUser.current.setNativeProps({ style: { borderColor: FOCUS_COLOR } }) }
onBlur={ () => refUser.current.setNativeProps({ style: { borderColor: BLUR_COLOR } }) }
/>

所以如果我更改文本中的焦点输入

const handleFocus = () => {
refTitle.current.setNativeProps({ style: { color: FOCUS_COLOR } })
refUser.current.setNativeProps({ style: { borderColor: FOCUS_COLOR } })
}

我不知道为什么它不起作用,一直在搜索但指南告诉我没关系,这是最近的 React Native 中的错误吗?

2nd.我确实使用了状态,这更简单,但有一种我不明白的错误。

我只是使用onFocus函数来设置状态新颜色,...每次我单击文本输入时,它都会更改颜色...但它并没有真正聚焦,我必须再次单击才能使其完全聚焦(键盘出现并且指示器开始滴答作响(

你必须使用引用才能使用 setNativeProps

<TextInput
ref={ref => {this.referencedeTF = ref;
}}
/>
this.referencedeTF.setNativeProps({
borderColor: "red",
borderWidth: 1
});

您以错误的方式使用引用。

事实证明,我使用的是不同的<Text>,而不是来自 react-native...解决了它,但我仍然感到困惑,如果使用状态迫使我单击两次以触发焦点,而第一次按已经改变了颜色,也许是因为文本不是来自 React-native

相关内容

  • 没有找到相关文章

最新更新