文字未出现在ios / android设备上,但在模拟器上工作正常

时间:2018-11-14 00:15:04

标签: android ios react-native

我一直在努力部署一个React-native项目,该项目在ios和android模拟器上都可以正常工作(并且将继续工作)。我最近在Playstore和testflight中将其部署到Beta中,当我们启动该应用程序时,似乎缺少一些占位符和默认文本:-(

我是本机开发的新手,所以任何建议都将不胜感激。可能是生成我的应用程序捆绑包时我缺少了什么吗?我正在使用react-native:0.55.4。下面是我的登录页面上的代码,其中缺少标签,输入内容也没有传递到下一页。

。 。

constructor(props) {
    super(props);

    this.state = {
        username: '',
        password: '',
        isJobOwner: false,
        saveCredentials: false,
        isLoading: false
    };
}

。 。

onPressLogin() {
    this.props.navigation.navigate('SignUpChoice', {
        data: {
            username: this.state.username,
            password: this.state.password
        }
    });
}

。 。

<Form style={styles.loginForm}>
                    <View style={styles.formInputs}>
                        <UnderlinedInput floating={true} label={'Email'} value={this.state.username}
                                         onChangeText={(username) => this.setState({username})}
                                         keyboardType={'email-address'} autoCapitalize={'none'}/>
                        <UnderlinedInput floating={true} label={'Password'} value={this.state.password}
                                         onChangeText={(password) => this.setState({password})}
                                         secureTextEntry={true}
                                         autoCapitalize={'none'}/>

                    </View>
                    <View style={styles.formButtons}>
                        <Button transparent
                                onPress={() => this.onPressForgotPassword()}
                                disabled={this.state.isLoading} style={styles.forgotButtonStyle}><Text
                            style={styles.forgotTextStyle}>Forgot
                            Password?</Text></Button>
                        <Button primary style={styles.loginButtonStyle} onPress={() => this.onPressLogin()}
                                disabled={this.state.isLoading}>
                            <Text style={styles.loginTextStyle}>Sign In</Text>
                        </Button>
                    </View>

。 。

function mapStateToProps(state) {
const data = state.data.loginReducer;
return {
    requesting: data.requesting,
    successful: data.successful,
    errors: data.errors,
    isJobOwner: data.isJobOwner
}

}

。 。

export default connect(mapStateToProps)(LoginScreen);

在模拟器上一切正常,但在设备上好像状态没有被更新。

编辑:包括UnderlinedInput的源

import React from 'react';
import {Item, Input, Label} from 'native-base';
import colors from 'Colors';

const UnderlinedInput = ({defaultValue, label, value, onChangeText, secureTextEntry, keyboardType, autoCapitalize, floating, onEndEditing}) => {
return (
    <Item floatingLabel={floating} stackedLabel={!floating} style={styles.inputTextStyle}>
        <Label style={styles.labelStyle}>{label}</Label>
        <Input
            secureTextEntry={secureTextEntry || false}
            autoCorrect={false}
            autoCapitalize={autoCapitalize || 'words'}
            value={value}
            onChangeText={onChangeText}
            keyboardType={keyboardType || 'default'}
            defaultValue={defaultValue}
            onEndEditing={onEndEditing}
            style={styles.inputMainStyle}
        />
    </Item>
);

};

const styles = {
    inputTextStyle: {
        borderBottomColor: colors.lightGrey,
        borderBottomWidth: 1,
        color: colors.lightGrey,
        width: '80%',
        marginLeft: 'auto',
        marginRight: 'auto',
        paddingBottom: 10
    },
    inputMainStyle: {
        color: colors.lightGrey,
        fontSize: 14
    },
    labelStyle: {
        fontWeight: '700',
        letterSpacing: 1,
        paddingTop: 4,
        color: colors.lightGrey,
        fontSize: 14
    }
};

导出默认的UnderlinedInput;

1 个答案:

答案 0 :(得分:0)

从我的角度来看,这是因为您使用的是第三方库UnderlinedInput,请确保这些组件不是100%可靠的,它们在某些设备上或某些情况下无法使用。如果您尝试使用简单的TextInput作为示例,那么我敢肯定它会起作用。