index.js 5.97 KB
import React, { Component } from "react";
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  TouchableOpacity,
  Image,
  AlertIOS,
  AsyncStorage,
  Button,
} from "react-native";
import { StackNavigator, TabNavigator } from 'react-navigation';

export default class Mine extends Component {
  // static navigationOptions = {
  //   title: '我的',
  // };
  constructor(props) {
    super(props);
    this.state = {
      IS_LOGIN: "no",
      name: "哈哈哈",
      identity: "职业代理人",
    };
    this.saveResponse1 = this.saveResponse1.bind(this);
    this.saveResponse2 = this.saveResponse2.bind(this);
  }
  componentWillMount() {
    var _that = this;
    console.log("this",this)
     AsyncStorage.getItem("IS_LOGIN",(err, result) => {
       if (err) {
         console.error(err);
       }
       _that.setState({
        IS_LOGIN: result
       })
       console.log("我的页面的IS_LOGIN",this.state.IS_LOGIN);
     })
  }
  componentDidMount() {
    // console.log("hello,AsyncStorage");
  }
  signIn() {
    var _that = this
    AsyncStorage.setItem("IS_LOGIN","yes",function (err) { 
      if (err) {
        console.log("存储出错",err);
        return false;
      }
     })
     _that.setState({
      IS_LOGIN: "yes"
     })
  }
  signOut() {
    var _that = this
    AsyncStorage.setItem("IS_LOGIN","no",function (err) { 
      if (err) {
        console.log("存储出错",err);
        return false;
      }
     })
     _that.setState({
      IS_LOGIN: "no"
     })
  }
  saveResponse1(d) {
    if (this.state.IS_LOGIN == "yes") {
      this.setState({ name: d });
    }
  }
  saveResponse2(d) {
    if (this.state.IS_LOGIN == "yes") {
      this.setState({ identity: d });
    }
  }
  render() {
    const { navigate } = this.props.navigation;
    return (
      <View style={styles.container}>
        {/* 头部头像 */}
        <View style={styles.header}>
            <Image
              source={require("../../assets/Mine/iconpic1.png")}
              style={styles.mineIcon}
            />
        </View>
        <View style={styles.midContainer}>
          {/* 更改昵称 */}
          <TouchableOpacity
            style={styles.itemContainer}
            onPress={() => {
              AlertIOS.prompt("更改昵称", null, this.saveResponse1);
            }}
          >
            <View style={styles.itemLeft}>
              <Image
                style={styles.leftIcon}
                source={require("../../assets/tabbar/ic_circle_s.png")}
              />
              <Text style={styles.leftTitle}>昵称</Text>
              {/* {this.state.IS_LOGIN ? <Text style={styles.leftTitle}>昵称</Text> : null} */}
            </View>
            <View style={styles.itemRight}>
              { this.state.IS_LOGIN === "yes" ? <Text style={styles.itemRightContent}>{this.state.name}</Text> : null}
              {/* <Text style={styles.itemRightContent}>{this.state.name}</Text> */}
              <Image
                style={styles.itemRightImg}
                source={require("../../assets/Mine/rightArrow_gray.png")}
              />
            </View>
          </TouchableOpacity>
          {/* 更改职业 */}
          <TouchableOpacity
            style={styles.itemContainer}
            onPress={() => {
              AlertIOS.prompt("更改职业", null, this.saveResponse2);
            }}
          >
            <View style={styles.itemLeft}>
              <Image
                style={styles.leftIcon}
                source={require("../../assets/tabbar/ic_circle_s.png")}
              />
              <Text style={styles.leftTitle}>职业</Text>
            </View>
            <View style={styles.itemRight}>
              {/* <Text style={styles.itemRightContent}>{this.state.identity}</Text> */}
              { this.state.IS_LOGIN === "yes"? <Text style={styles.itemRightContent}>{this.state.identity}</Text> : null}
              <Image
                style={styles.itemRightImg}
                source={require("../../assets/Mine/rightArrow_gray.png")}
              />
            </View>
          </TouchableOpacity>
        </View>

        {/* 登录 */}
        <TouchableOpacity
          style={styles.loginOut}
          onLogin={this.props.onLogin}
          onPress={() => {
            {/* this.signOut(); */}
            navigate("Login",{IS_LOGIN: this.state.IS_LOGIN});
          }}
        >
          <Text style={styles.loginOutText}>{this.state.IS_LOGIN ? "登录" : "退出登录"}</Text>
        </TouchableOpacity>
        {/* <Button
          title="登出"
          onPress={() => {
            this.signOut();
          }}
        /> */}
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "flex-start",
    alignItems: "stretch",
    backgroundColor: "#EFEFEF",
  },
  header: {
    backgroundColor: "#1B9341",
    height: 154,
    flexDirection: "row",
    justifyContent: "center",
    alignItems: "center",
    marginBottom: 10
  },
  mineIcon: {
    width: 86,
    height: 86,
  },
  mineName: {
    fontSize: 16,
    lineHeight: 22,
    color: "#fff"
  },
  headerRight: {
    width: 14,
    height: 14
  },
  midContainer: {},
  itemContainer: {
    height: 46,
    paddingLeft: 16,
    paddingRight: 16,
    flexDirection: "row",
    justifyContent: "space-between",
    alignItems: "center",
    backgroundColor: "#fff",
    borderStyle: "solid",
    borderColor: "#F0F0F0",
    borderBottomWidth: 1
  },
  itemLeft: {
    flexDirection: "row",
    justifyContent: "flex-start",
    alignItems: "center"
  },
  leftIcon: {
    marginRight: 11,
    width: 16,
    height: 16
  },
  leftTitle: {
    fontSize: 15,
    color: "#242424"
  },
  itemRight: {
    flexDirection: "row",
    justifyContent: "flex-start",
    alignItems: "center"
  },
  itemRightContent: {
    marginRight: 5
  },
  itemRightImg: {
    width: 14,
    height: 14
  },
  loginOut: {
    marginTop: 10,
    height: 46,
    backgroundColor: "#fff",
    justifyContent: "center"
  },
  loginOutText: {
    textAlign: "center",
    fontSize: 15
  }
});