React native 聚焦时更改nativebase输入字段的样式

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属性。 另外,我不想在我使用输入元素的每个屏幕中定义这

我正在使用nativebase,我将它弹出到我的项目中,并添加了一个自定义主题

现在我想让我所有的textinput元素和picker元素在聚焦时使用不同的borderColor。大概是这样的:


{
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>