import React, { Component } from 'react'; import { StyleSheet, View, Alert, Text, TextInput, DeviceEventEmitter, Keyboard } from 'react-native'; import {Navigation} from 'react-native-navigation'; import Color from '../style/color'; import {Icon} from '../style/icon'; import Msg from '../util/msg'; import Api from '../util/api'; import Token from '../util/token'; import Event from '../util/event'; export default class UserNameEditPage extends Component { constructor(props) { super(props); Navigation.events().bindComponent(this); this.state = { name: props.user.name } } static options(passProps) { return { topBar: { title: { text: '修改名字' }, rightButtons: [{ id: 'save', icon: Icon.navButtonSave }] }, bottomTabs: { visible: false, // hide bottom tab for android drawBehind: true, animate: true } }; } componentDidMount() { setTimeout(() => { this.refs.input.focus(); }, 500); } navigationButtonPressed({buttonId}) { this.saveUserName(); } saveUserName() { const len = this.state.name.length; if (len === 0) { Alert.alert('提示', '名字不能为空'); return; } else if (len > 10) { Alert.alert('提示', '名字不能超过10个字'); return; } Api.updateUserInfo(this.state.name, this.props.user.intro) .then(async user => { Keyboard.dismiss(); Msg.showMsg('修改成功'); await Token.setUserInfo(user); DeviceEventEmitter.emit(Event.userInfoUpdated); Navigation.pop(this.props.componentId); }) .catch(e => { Msg.showMsg('修改失败'); }) .done(); } render() { return ( 名字 this.setState({name: text})} /> ); } } const localStyle = StyleSheet.create({ group: { marginTop: 30, backgroundColor: 'white', borderTopWidth: StyleSheet.hairlineWidth, borderBottomWidth: StyleSheet.hairlineWidth, borderColor: '#c8c7cc' }, item: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', paddingHorizontal: 15, height: 45 }, title: { fontSize: 16, color: '#222' }, textInput: { flex: 1, fontSize: 16, marginLeft: 15, padding: 0, height: 24, color: Color.content } });