首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入/导出组件

导入/导出组件
EN

Stack Overflow用户
提问于 2020-07-12 20:56:43
回答 1查看 38关注 0票数 0

我正在尝试构建一个自定义输入组件,并在另一个页面上呈现它。这是我的代码

代码语言:javascript
复制
import React from "react";
import { View, TextInput, StyleSheet, Text } from "react-native";
import {
  widthPercentageToDP as wp,
  heightPercentageToDP as hp,
} from "react-native-responsive-screen";
import { MaterialCommunityIcons } from "@expo/vector-icons";
class RegisterTextBox extends React.Component {
  render() {
    const RegisterTextInput = ({
      value,
      placeholder,
      onChangeText,
      onBlur,
      secureTextEntry,
      inputStyle,
      viewStyle,
      eyeIcon = false,
    }) => {
      return (
        <View style={[styles.container, viewStyle]}>
          <TextInput
            style={[styles.main, inputStyle]}
            value={value}
            onChangeText={onChangeText}
            onBlur={onBlur}
            placeholder={placeholder}
            secureTextEntry={secureTextEntry}
          />
          {eyeIcon ? (
            <MaterialCommunityIcons
              name="eye-off"
              size={24}
              color="black"
              style={{ paddingTop: 5 }}
            />
          ) : (
            <View />
          )}
        </View>
      );
    };

    const styles = StyleSheet.create({
      container: {
        height: hp(5.4),
        width: wp(65.2),
        borderBottomColor: "grey",
        borderBottomWidth: 1,
        flexDirection: "row",
        justifyContent: "space-between",
      },
      main: {},
    });
  }
}
export default RegisterTextBox;

我想要渲染const RegisterTextInput并使用动态数据,但当我尝试使用它时似乎得到了一个错误" error : RegisterTextBox(...):Nothing is returned from render. .这是我试图使用它的方式:

代码语言:javascript
复制
...
import RegisterTextInput from "../components/registerInput";
<View style={styles.emailInputsContainer}>
            <RegisterTextInput
              style={styles.emailInput}
              placeholder="Email"
              value={"email"}
              onChangeText={}
            />
          </View>
...

我的问题在哪里?注意:我想在这个组件上使用状态

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-12 21:16:01

试试这个..。

代码语言:javascript
复制
import React from "react";
import { View, TextInput, StyleSheet, Text } from "react-native";
import {
  widthPercentageToDP as wp,
  heightPercentageToDP as hp,
} from "react-native-responsive-screen";
import { MaterialCommunityIcons } from "@expo/vector-icons";

class RegisterTextBox extends React.Component {
  constructor(props) {
    super(props);
  }
  render() {
    const {
      value,
      placeholder,
      onChangeText,
      onBlur,
      secureTextEntry,
      inputStyle,
      viewStyle,
      eyeIcon = false,
    } = this.props;
    return (
      <View style={[styles.container, viewStyle]}>
        <TextInput
          style={[styles.main, inputStyle]}
          value={value}
          onChangeText={onChangeText}
          onBlur={onBlur}
          placeholder={placeholder}
          secureTextEntry={secureTextEntry}
        />
        {eyeIcon ? (
          <MaterialCommunityIcons
            name="eye-off"
            size={24}
            color="black"
            style={{ paddingTop: 5 }}
          />
        ) : (
          <View />
        )}
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    height: hp(5.4),
    width: wp(65.2),
    borderBottomColor: "grey",
    borderBottomWidth: 1,
    flexDirection: "row",
    justifyContent: "space-between",
  },
  main: {},
});

export default RegisterTextBox;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62861376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档