簡體   English   中英

使用 React Native Base 導航

[英]Navigation with React Native Base

當我點擊登錄按鈕時,我想導航到另一個屏幕(即“詳細信息”)。 這是我的工作主要代碼:(可以在 Snack Expo 上查看)

import React, { Component } from 'react';
import { Container, Header, Left, Body, Right, Button, Title, Text, Form, Item, Input, Label} from 'native-base';
import { StackNavigator } from 'react-navigation';
import { DrawerNavigator } from "react-navigation";

export default class Login extends Component {
  constructor(props) {
    super(props);

    this.state = {
      username: '',
      password: '',
    };
  }
  render() {
    return (
      <Container>
      <Text >Instaride</Text>
      <Form>
            <Item floatingLabel>
              <Label onChangeText={(text) => this.setState({username: text})}>Username</Label>
              <Input 
              value={this.state.username}
          onChangeText={username => this.setState({ username })}
          placeholder={'Username'}
          />
            </Item>
            <Item floatingLabel last>
              <Label >Password</Label>
              <Input 
              value={this.state.password}
          onChangeText={password => this.setState({ password })}
          placeholder={'Password'}
          secureTextEntry={true}
          />
            </Item>
          </Form>
          <Left>
            <Button >
              <Text>Login</Text>
            </Button>
            <Text >Forgot Password?</Text>
          </Left>
          <Right>
            <Button hasText transparent>
              <Text>Sign Up Here</Text>
            </Button>
          </Right>
      </Container>
    );
  }
}
class DetailsScreen extends React.Component {
  render() {
    return (
        <Text>Details Screen</Text>
    );
  }
}

class RegisterationScreen extends React.Component {
  render() {
    return (

        <Text>sign up time</Text>
    );
  }
}

但是,當我添加此內容時出現錯誤:

const HomeScreenRouter = DrawerNavigator(
  {
    Home: { screen: Login },
    Chat: { screen: DetailsScreen },
    Profile: { screen: RegisterationScreen }
  }
)

我真的想不出一種方法來結合所有這些:

onPress={() => this.props.navigation.navigate("Details")}

另外,我到底應該在代碼末尾導出什么?

你應該做這樣的事情來工作......

import React, { Component } from 'react';
import { Container, Header, Left, Body, Right, Button, Title, Text, Form, Item, Input, Label} from 'native-base';
import { StackNavigator } from 'react-navigation';
import { DrawerNavigator } from "react-navigation";
import { createAppContainer } from 'react-navigation';

class Login extends Component {
  constructor(props) {
    super(props);

    this.state = {
      username: '',
      password: '',
    };
  }
  render() {
    return (
      <Container>
      <Text >Instaride</Text>
      <Form>
            <Item floatingLabel>
              <Label onChangeText={(text) => this.setState({username: text})}>Username</Label>
              <Input 
              value={this.state.username}
          onChangeText={username => this.setState({ username })}
          placeholder={'Username'}
          />
            </Item>
            <Item floatingLabel last>
              <Label >Password</Label>
              <Input 
              value={this.state.password}
          onChangeText={password => this.setState({ password })}
          placeholder={'Password'}
          secureTextEntry={true}
          />
            </Item>
          </Form>
          <Left>
            <Button >
              <Text>Login</Text>
            </Button>
            <Text >Forgot Password?</Text>
          </Left>
          <Right>
            <Button hasText transparent>
              <Text>Sign Up Here</Text>
            </Button>
          </Right>
      </Container>
    );
  }
}
class DetailsScreen extends React.Component {
  render() {
    return (
        <Text>Details Screen</Text>
    );
  }
}

class RegisterationScreen extends React.Component {
  render() {
    return (

        <Text>sign up time</Text>
    );
  }
}

const HomeScreenRouter = createStackNavigator(
  {
    Details: { screen: Details },       
  }
)

export default createAppContainer(HomeScreenRouter);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM