如何使用this.state与react-native?

时间:2017-11-26 02:48:56

标签: react-native

嗨,我是新来的,所以请耐心等待。 以下是我的代码......

import React from 'react';
import { StyleSheet, Text, View, TouchableHighlight, AsyncStorage} from 'react-native';

export default class App extends React.Component {
    constructor(){
        super();
        this.state = {
            myLeader: 'Joe',
        };
    }

    onPress(){
        alert({this.state.myLeader}); // 14
    }
    render() {
        return (
            <View>
                <TouchableHighlight onPress={this.onPress.bind(this)}>          
                    <Text>{this.state.myLeader}</Text>
                </TouchableHighlight>
            </View>
        );
    }
}

如何解决这个问题?

错误信息是这样的。 '这是Home.js中的保留字(14.9):14.9' 我想在

中使用{this.state.myLeader}
onPress(){
    alert({this.state.myLeader});
}

我试过'绑定(这个)' 有什么线索的原因?

4 个答案:

答案 0 :(得分:0)

尝试将第14行替换为:

console.log(this.state.myLeader)

要使用Alert with React Native,请查看the doc

答案 1 :(得分:0)

小心使用{}。在JSX的上下文中,{}可用于&#34;内插&#34;其中的一个值。但是,如果您正在编写纯JavaScript代码(如在alert({this.state.myLeader})中),则不需要插入任何内容,只需将值this.state.myLeader传递给alert,就像在alert(this.state.myLeader)中一样。 alert

关于在React Native中使用Alert.alert,您可能希望关注@kytwb's advise并使用const routes: Routes = [ { path: '', redirectTo: 'home', pathMatch: 'full' }, { path: 'home', component: HomeComponent }, { path: 'signup', loadChildren: 'sighup/sighup.module#SignUpModule' }, { path: 'front-end', loadChildren: 'front-end/front-end.module#FrontEndModule' }, ];

答案 2 :(得分:0)

首先,从react-native导入警报:

import { StyleSheet, Alert, Text, View, TouchableHighlight, AsyncStorage} from 'react-native';

然后,更改onPress功能:

onPress(){
    Alert.alert(this.state.myLeader); // 14
}

答案 3 :(得分:0)

另一个解决方案是忘记绑定并执行此操作:

 onPress = () => {
        alert({this.state.myLeader}); // 14
    }

 <TouchableHighlight onPress={this.onPress}>