如何移除NativeBase TextArea组件的激活态边框变色效果?
NativeBase 的表单组件内置了独立的交互状态(聚焦、悬停、按压等)样式规则,你仅设置了默认状态的borderColor属性,没有覆盖交互状态下的样式,因此激活时会触发组件预设的边框色。无需修改校验逻辑,用以下两种方案即可实现需求:
方案1:单组件单独配置
直接在TextArea组件上补充交互状态的样式配置,修改后代码如下:
<TextArea borderColor="transparent" _focus={{ borderColor: "transparent" }} // 需覆盖悬停、按压状态可额外添加以下配置 _hover={{borderColor: "transparent"}} _pressed={{borderColor: "transparent"}} h={'98%'} textAlignVertical="top" placeholder="| Add Notes" />
方案2:全局统一配置(适合多场景复用)
如果项目中多处TextArea都需要该样式,可以自定义NativeBase主题,全局覆盖TextArea的默认样式:
import { extendTheme } from 'native-base'; const customTheme = extendTheme({ components: { TextArea: { baseStyle: { borderColor: "transparent", _focus: { borderColor: "transparent" }, _hover: {borderColor: "transparent"}, _pressed: {borderColor: "transparent"} } } } });
将自定义主题传入NativeBase的Provider后,所有TextArea组件默认都会应用该样式。
内容的提问来源于stack exchange,提问作者Junior
相关产品推荐
相关产品推荐

