PersonalInfo.js 2.81 KB
import React, { Component } from "react";
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  ScrollView,
  TouchableOpacity,
  TouchableHighlight,
  Image,
  Modal
} from "react-native";

export default class PersonalInfo extends Component {
  constructor(props) {
    super(props);
    this.state = {
      modalVisible: false
    };
  }

  setModalVisible(visible) {
    this.setState({ modalVisible: visible });
  }

  render() {
    const { name, identity } = this.props;
    return (
      <View style={styles.container}>
        <TouchableOpacity
          style={styles.itemContainer}
          onPress={() => {
            this.setModalVisible(true);
          }}
        >
          <Text style={styles.itemLeft}>昵称</Text>
          <View style={styles.itemRight}>
            <Text style={styles.itemContent}>{name}</Text>
            <Image
              style={styles.itemArrow}
              source={require("../../assets/Mine/rightArrow_gray.png")}
            />
          </View>
        </TouchableOpacity>
        <TouchableOpacity
          style={styles.itemContainer}
          onPress={() => {
            this.setModalVisible(true);
          }}
        >
          <Text style={styles.itemLeft}>职业</Text>
          <View style={styles.itemRight}>
            <Text style={styles.itemContent}>{identity}</Text>
            <Image
              style={styles.itemArrow}
              source={require("../../assets/Mine/rightArrow_gray.png")}
            />
          </View>
        </TouchableOpacity>

        <Modal
          animationType={"slide"}
          transparent={false}
          visible={this.state.modalVisible}
          onRequestClose={() => {
            alert("Modal has been closed.");
          }}
        >
          <View style={{ marginTop: 22 }}>
            <View>
              <Text>Hello World!</Text>
              <TouchableOpacity
                onPress={() => {
                  this.setModalVisible(!this.state.modalVisible);
                }}
              >
                <Text>Hide Modal</Text>
              </TouchableOpacity>
            </View>
          </View>
        </Modal>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "flex-start",
    alignItems: "stretch",
    backgroundColor: "#EFEFEF",
    paddingTop: 74
  },
  itemContainer: {
    flexDirection: "row",
    alignItems: "center",
    justifyContent: "space-between",
    paddingLeft: 16,
    paddingRight: 16,
    paddingTop: 13,
    paddingBottom: 13,
    marginBottom: 1,
    backgroundColor: "white"
  },
  itemLeft: {
    fontSize: 15,
    color: "#242424"
  },
  itemRight: {
    flexDirection: "row",
    alignItems: "center"
  },
  itemContent: {
    fontSize: 15,
    color: "#7A7A7A",
    marginRight: 6
  },
  itemArrow: {
    width: 14,
    height: 14
  }
});