React Native:不变违反:文本字符串必须在<text>组件内呈现

时间:2018-10-24 16:17:44

标签: reactjs react-native

好的,所以我有些新意,我做了一个示例登录屏幕,如下所示:

export default class App extends Component{
    constructor(props){
        super(props);
        this.state = {
            login: '',
            password: '',
            // exists: false,
            Button: './submitButton.png',
        }
    }

    render() {
        return (
            <View>
            //Login form here
            <View style={styles.container}>
                <TextInput
                    styles = {styles.container}
                    placeholder = "Login"
                    onChangeText = {(login) => this.setState({login})}
                />
                <TextInput
                    styles = {styles.container}
                    placeholder = "Password"
                    onChangeText = {(password) => this.setState({password})}
                />
            </View>
            //Button here
            <View style={styles.container}>
                <TouchableHighlight
                    onPress = {() => Alert.alert("Alert!")}
                >
                    <Image
                        style={styles.button}
                        source={require('./submitButton.png')}
                    />
                </TouchableHighlight>
            </View>
            </View>
        );
    }
}

但是我收到以下错误:

enter image description here

我最初使用的是Button而不是TouchableHighlight,因为据我了解,它的本机反应是0.56(我使用的版本)has a bug regarding buttons,而显然是< / em>会产生与上述相同的问题,并且解决方法应该使用TouchableHighlightTouchableOpacity。但是切换到TouchableOpacity似乎并不能解决任何问题。

做什么?我曾搜索过Google,但似乎找不到解决方法。

(如果没有希望,有没有办法降级我的react安装而不会破坏几乎所有内容?)

1 个答案:

答案 0 :(得分:4)

在JSX中,fdopen()之类的注释不起作用。它将被视为文本。

您必须将注释更改为如下所示的形状

# Untested

struct stat pstat;

FILE *f = fopen(path, "r");

if (!f) return FILE_ERR;

if (fstat(fileno(f), &pstat) == -1) {
//  ^^^^^^^^^^^^^^^                         <-- CHANGED HERE
    fclose(f);
    return FILE_ERR;
}

if (S_ISDIR(pstat.st_mode)) {
    fclose(f);
    return PATH_IS_DIR;
}