React native 如何在其他模块中使用自定义TextInput组件并处理数据?

React native 如何在其他模块中使用自定义TextInput组件并处理数据?,react-native,React Native,我很长一段时间都在面对一个问题, 我似乎知道如何将数据从注册页面提取到动态文本输入组件 这是我的注册页面代码: import React,{Component}来自“React”; 从“./util/firebase”导入firebase; 进口{ 样式表, 文本, 看法 可触摸不透明度, 文本输入, 活动指示器, 警觉的, }从“反应本族语”; 进口{ 宽度百分比TODP作为wp, 高度百分比TODP作为hp, }从“反应本机响应屏幕”; 从“./components/registerInpu

我很长一段时间都在面对一个问题, 我似乎知道如何将数据从注册页面提取到动态文本输入组件 这是我的注册页面代码:

import React,{Component}来自“React”;
从“./util/firebase”导入firebase;
进口{
样式表,
文本,
看法
可触摸不透明度,
文本输入,
活动指示器,
警觉的,
}从“反应本族语”;
进口{
宽度百分比TODP作为wp,
高度百分比TODP作为hp,
}从“反应本机响应屏幕”;
从“./components/registerInput”导入RegisterTextBox;
导出默认类寄存器扩展React.Component{
//状态构造函数
建造师(道具){
超级(道具);
此.state={
确认密码:“”,
电邮:“,
密码:“”,
孤岛加载:false,
按钮颜色:“8b898a”,
};
}
//更改按钮颜色
changeColor(){
让currentColor=this.state.buttonColor;
如果(
this.state.email!“”&&
this.state.password!=“”&&
this.state.confirmPassword!“”
) {
currentColor=“#7356bf”;
}else currentColor=“#8b898a”;
this.setState({buttonColor:currentColor});
}
//将输入状态更新为当前输入值
updateInputVal=(val,prop)=>{
const state=this.state;
状态[prop]=val;
这个;
};
//寄存器功能
注册服务器=()=>{
//如果输入空白返回警报
如果(this.state.email===”&&this.state.password===”){
Alert.Alert(“输入要注册的详细信息!”);
}
//如果密码不匹配,返回警报
else if(this.state.password!==this.state.confirmPassword){
警报。警报(“密码不匹配”);
}
//如果一切正常,请注册用户
否则{
这是我的国家({
孤岛加载:是的,
});
火基
//激活身份验证
.auth()
//新功能
//创建新用户
.createUserWithEmailAndPassword(this.state.email,this.state.password)
//创建用户后
.然后(()=>{
log(“用户注册成功!”);
这是我的国家({
孤岛加载:false,
电邮:“,
密码:“”,
确认密码:“”,
});
//this.props.navigation.navigate(“下一屏”);
})
.catch((错误)=>{
//在这里处理错误。
var errorCode=error.code;
var errorMessage=error.message;
如果(错误代码==“验证/弱密码”){
警报(“密码太弱。”);
}else if(错误代码==“验证/无效电子邮件”){
警报(“电子邮件无效”);
}else if(错误代码==“已在使用身份验证/电子邮件”){
警报(“电子邮件已被使用!”);
}否则{
警报(错误消息);
}
console.log(错误);
这是我的国家({
孤岛加载:false,
});
});
}
};
render(){
if(此.state.isLoading){
返回(
);
}
返回(
创建一个帐户并加入我们的工作室
this.updateInputVal(val,“email”)}
/>
this.updateInputVal(val,“password”)}
maxLength={15}
secureTextEntry={true}
/>
this.updateInputVal(val,“confirmPassword”)}
maxLength={15}
secureTextEntry={true}
/>
this.registerUser()}
>
继续
);
}
}
const styles=StyleSheet.create({
//观点
容器:{
弹性:1,
背景颜色:“ffffff”,
},
标题容器:{
高度:马力(10),
宽度:wp(65.2),
对齐项目:“中心”,
边际收益:可湿性粉剂(17.4),
边际收益率:wp(17.4),
马金托普:惠普(17.1),
},
输入容器:{
马金托普:惠普(7.9),
对齐项目:“中心”,
},
按钮容器:{
对齐项目:“中心”,
},
//钮扣
登录按钮:{
flexDirection:“行”,
马金托普:惠普(14),
对齐项目:“中心”,
辩护内容:“中心”,
边界半径:32.5,
宽度:wp(78.3),
高度:马力(7.3),
背景颜色:“灰色”,
},
//投入
电子邮件输入:{
高度:马力(5.4),
宽度:wp(65.2),
颜色:“灰色”,
边界宽度:1,
},
密码输入:{
高度:马力(5.4),
宽度:wp(65.2),
颜色:“灰色”,
边界宽度:1,
},
确认密码输入:{
高度:马力(5.4),
宽度:wp(65.2),
颜色:“灰色”,
边界宽度:1,
},
//头衔
标题:{
弹性:1,
textAlign:“居中”,
字体大小:hp(3.8),
},
//装载
预紧器:{
左:0,,
右:0,,
排名:0,
底部:0,
位置:“绝对”,
对齐项目:“中心”,
辩护内容:“中心”,
背景颜色:“fff”,
},
});
这是输入组件:

从“React”导入React;
从“react native”导入{View,TextInput,StyleSheet,Text};
进口{
宽度百分比TODP作为wp,
高度百分比TODP作为hp,
}从“反应本机响应屏幕”;
从“@expo/vector icons”导入{materialcommunitycons,AntDesign}”;
类RegisterTextBox扩展React.Component{
建造师(道具){
超级(道具);
此.state={
isTextFill:false,
isInputValid:false,
isFocused:错,
};
}
onBlur(){
this.setState({isFocused:false});
}
onFocus(){
this.setState({isFocused:true});
}
onChangeTextEvent=(文本)=>{
console.log(文本);
如果(text.length>0){
这是我的国家({
isTextFill:是的,
});
}否则{
这是我的国家({
isTextFill:false,
});
}
console.log(this.state.isTextFill);
};
//验证电子邮件
//验证通行证
//根据文本验证更改字段颜色
render(){
常数{
return (
  <View style={[styles.container, viewStyle]}>
    <TextInput
      style={[styles.main, styleInput]}
      value={value}
      onChangeText={(val) => {
        onChangeText();
        this.onChangeTextEvent(val);
      }}
      onBlur={() => this.onBlur()}
      onFocus={() => this.onFocus()}
      placeholder={placeholder}
      secureTextEntry={secureTextEntry}
      type={type}
    />
return (
      <View style={[styles.container, viewStyle]}>
        <TextInput
          style={[styles.main, styleInput]}
          value={value}
          onChangeText={(val) => {
            onChangeText(val);         <---------------- CHANGED
            this.onChangeTextEvent(val);
          }}
          onBlur={() => this.onBlur()}
          onFocus={() => this.onFocus()}
          placeholder={placeholder}
          secureTextEntry={secureTextEntry}
          type={type}
        />