javascript - 如何将道具传递给 onBlur() 并同时使用预定义的函数(React Native)?
问题描述
我有一个文本输入组件,它使用 onBlur 和 onFocus 事件更改其背景颜色。我想要做的是使用道具将另一个函数传递给 onBlur,因此组件将执行这两个操作。
这是我的组件:
const Input: React.FC<TextInputProps> = (props) => {
const [color, setColor] = useState("#f2f2f2");
return (
<TextInput
onFocus={() => setColor('#f9ffc4')}
onBlur={() => setColor('#f2f2f2')} // I would like to use props.onBlur here in addition to setColor()
onChangeText={props.onChangeText}
style={{ backgroundColor: color }}
value={props.value}
>
</TextInput>
)
}
export default Input;
这就是我使用它的方式:
return (
<Input
onChangeText={ handleChange('cpf') }
value={values.cpf}
onBlur={() => setFieldTouched('cpf')} //I want to call it along with the method declared in the component
/>
{touched.cpf && errors.cpf &&
<Text style={{ color: 'red', width: '100%', textAlign: 'right' }}>{errors.cpf} </Text>
}
)
我知道我可以在这里使用 setColor(),但是我还有很多其他输入,如果我这样做了,我将不得不为它们中的每一个创建一个 useState const,这不是我想要的。
如果有人可以在这里帮助我,我将不胜感激,如果我的问题不清楚,请问我,我会尽力解释得更好。
解决方案
onBlur={() => {
setColor('#f2f2f2');
props.onBlur();
}}
这是你想要的吗?
推荐阅读
- spring-boot - 使用 spring-retry 进行 SpringBoot 测试
- flutter - 如何在颤动中动态创建选项卡
- asp.net-core - Razor Page asp-for 调用能否使用动态变量作为 asp-for 值的一部分
- mongodb - MongoDB Array 字段最大长度
- orm - 有没有办法在 ODB ORM 中使用本机 SQL 语句查询数据库
- r - 在R中从长到宽重塑列表
- mod-rewrite - 存在更多 IIS URL 映射时出现内部服务器错误
- ruby-on-rails - 比较 2 种不同格式的日期以匹配或不匹配 Ruby on Rails 6
- reactjs - 如何将 react-app-rewired 与 webpack 开发服务器一起使用?
- python - MySQL在python中选择多个变量