堆栈导航器给我未定义的错误

时间:2017-07-25 15:38:47

标签: javascript ios reactjs react-native

我顺便使用https://facebook.github.io/react-native/docs/navigation.html

我尝试使用callback: (val) => ` ${val}%`VideoClip clip = videoPlayer.clip; float videoWidth = clip.width; float videoHeight = clip.height; 转到StackNavigator。我的Login.js组件中哪些错误导致我的AboutDendro.js模拟器中出现错误?

enter image description here

此处<Button/>

iOS

2 个答案:

答案 0 :(得分:2)

这是因为navigation不在你的道具中。它是您创建的App组件的一部分。但是你对这个组件什么都不做。

您应该有一个App.js文件,使用您的stackNavigator,将您的Login组件设置为您的stackNavigator参数中的默认组件。

查看this documentation

答案 1 :(得分:1)

我尝试重构您的代码。 在组件render中,您可以写一下:

render() {
    const { navigate } = this.props.navigation;
    return (
        <ScrollView style={{padding: 20}}>
            <Button
                title="Go to Jane's profile"
                onPress={() =>
                    navigate('Profile', { name: 'AboutDendro' })
                }
            />
            <Text style={{fontSize: 27}}>{this.state.page}</Text>
            <TextInput
                placeholder='Email Address'
                autoCapitalize='none'
                autoCorrect={false}
                autoFocus={true}
                keyboardType='email-address'
                value={this.state.username}
                onChangeText={(text) => this.setState({ username: text })} />
            <TextInput
                placeholder='Password'
                autoCapitalize='none'
                autoCorrect={false}
                secureTextEntry={true}
                value={this.state.password}
                onChangeText={(text) => this.setState({ password: text })} />
            <View style={{margin: 7}}/>
            <Button onPress={(e) => this.handleClick(e)} title={this.state.page}/>
            <View style={styles.firstView}>
                <Text onPress={(e) => this.togglePage(e)} style={styles.buttons}>
                    {this.alt}
                </Text>
            </View>
        </ScrollView>
    );
  }
}

您将组件StackNavigation分开到组件render()下面,如:

 const App = StackNavigator({
        Home: { screen: Login },
        Profile: { screen: AboutDendro },
    });

然后<{1}}中的导入组件应用

index.ios.js

就是这样。也许我的回答可以帮到你。