React native 聚焦时更改nativebase输入字段的样式
我正在使用nativebase,我将它弹出到我的项目中,并添加了一个自定义主题 现在我想让我所有的textinput元素和picker元素在聚焦时使用不同的borderColor。大概是这样的:React native 聚焦时更改nativebase输入字段的样式,react-native,native-base,React Native,Native Base,我正在使用nativebase,我将它弹出到我的项目中,并添加了一个自定义主题 现在我想让我所有的textinput元素和picker元素在聚焦时使用不同的borderColor。大概是这样的: { this.setState({onFocus:true}); }} style={onFocus?{color:theme.onFocusInput}:{color:theme.default} 但是,这不起作用,因为组件中没有onFocus属性。 另外,我不想在我使用输入元素的每个屏幕中定义这
{
this.setState({onFocus:true});
}}
style={onFocus?{color:theme.onFocusInput}:{color:theme.default}
但是,这不起作用,因为
组件中没有onFocus属性。
另外,我不想在我使用输入元素的每个屏幕中定义这个。这应该在我的nativebase组件(proberly Item.js)中定义
我不确定是否可以编写一个扩展
的自定义组件,并在仍然具有正确主题的情况下使用它。但是这仍然不能解决
仍然没有onFocus
属性的问题。尝试使用
<Item regular style={{ borderRadius: 10, marginBottom: 10 }}>
<Input
onFocus={() => {
this.setState({ onFocus: true });
}}
onBlur={() => {
this.setState({ onFocus: false});
}}
style={{ color: this.state.onFocus ? theme.onFocusInput : theme.default}}
/>
</Item>
您的第二种方法比我发布的方法更好,但我仍然必须在每个屏幕中添加此方法。我希望在nativebase主题的Input.js(或任何地方)中以某种方式定义它。另一个问题是,我实际上需要更改没有onFocus属性的父级
的样式。您是否可以为此创建零食,以便轻松调试您所面临的问题。我更改了我的问题以使其更清楚。希望有帮助。这是nativebase的默认设置。我根本没有修改它
是一个nativebase组件。您能提供项目组件的链接吗?
我在文档中没有看到它。
const focused = () => {
this.setState({ backgroundcolor: "" })
}
const blured = () => {
this.setState({ backgroundcolor: "" })
}
<Item regular style={{ borderRadius: 10, marginBottom: 10 }}>
<Input
onFocus={this.focused}
onBlur={this.blured}
style={{ color: this.state.backgroundcolor }}
/>
</Item>