Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用UseNavigation()进行导航_Javascript_Reactjs_React Native_React Router_Navigation - Fatal编程技术网

Javascript 使用UseNavigation()进行导航

Javascript 使用UseNavigation()进行导航,javascript,reactjs,react-native,react-router,navigation,Javascript,Reactjs,React Native,React Router,Navigation,我在理解UseNavigation的用法时遇到了一些问题。我也找不到很多好的例子。我有一个例子,第一个按钮将我们带到注册页面,但我不确定具体如何。我试图编辑它的方式,第二个按钮带我到我的登录页面。 这是我的主页: import Login from './login/Login' type HomeScreenProps = {}; export const HomeScreen = observer<HomeScreenProps>(() => { const nav

我在理解UseNavigation的用法时遇到了一些问题。我也找不到很多好的例子。我有一个例子,第一个按钮将我们带到注册页面,但我不确定具体如何。我试图编辑它的方式,第二个按钮带我到我的登录页面。 这是我的主页:

import Login from './login/Login'

type HomeScreenProps = {};

export const HomeScreen = observer<HomeScreenProps>(() => {
  const navigation = useNavigation();
  const appStore = useAppStore();

  return (
    <View style={styles.page}>
      <View style={styles.container}>
        <Hello />
        <Button onPress={() => appStore.hello()}>
          <Text>Change State</Text>
        </Button>
        <Text>The state can also be here: </Text>
        <Text>{appStore.helloWorld}</Text>
        {/* */}
        <Button
          onPress={() => navigation.navigate('Registration')}>
          <Text>Press to register</Text>
        </Button>
        <Button
          //onPress={() => navigation.navigate('Login')}
          >
          <Text>Login</Text>
        </Button>
      </View>
    </View>
  );
});
从导入登录名“./Login/Login”
键入HomeScreenProps={};
导出常量主屏幕=观察者(()=>{
const navigation=useNavigation();
const appStore=useAppStore();
返回(
appStore.hello()}>
改变状态
国家也可以在这里:
{appStore.helloWorld}
{/* */}
navigation.navigate('Registration')}>
按登记
navigation.navigate('Login')}
>
登录
);
});
以下是我的登录页面的体系结构:

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 { createStackNavigator } from 'react-navigation-stack';
import { DrawerNavigator } from "react-navigation";
import { createAppContainer } from 'react-navigation';

export 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 onPress={() => this.props.navigation.navigate("Details")}>
              <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 LoginRouter = createStackNavigator(
  {
    Home: { screen: Login },
    Details: { screen: DetailsScreen },       
  }
)

export default createAppContainer(LoginRouter);
import React,{Component}来自'React';
从“原生基”导入{容器、标题、左、体、右、按钮、标题、文本、表单、项、输入、标签};
从“react navigation”导入{StackNavigator};
从“反应导航堆栈”导入{createStackNavigator};
从“react navigation”导入{DrawerNavigator};
从“react navigation”导入{createAppContainer};
导出类登录扩展组件{
建造师(道具){
超级(道具);
此.state={
用户名:“”,
密码:“”,
};
}
render(){
返回(
Instaride
this.setState({username:text}}>username
this.setState({username})}
占位符={'Username'}
/>
密码
this.setState({password})}
占位符={'Password'}
secureTextEntry={true}
/>
this.props.navigation.navigate(“详细信息”)}>
登录
忘记密码了?
在这里注册
);
}
}
类DetailsScreen扩展了React.Component{
render(){
返回(
详细信息屏幕
);
}
}
类注册表屏幕扩展了React.Component{
render(){
返回(
注册时间
);
}
}
const LoginRouter=createStackNavigator(
{
主页:{屏幕:登录},
详细信息:{screen:DetailsScreen},
}
)
导出默认createAppContainer(LoginRouter);
但它给出了一个错误。我怎样才能改变它?为什么该方法在注册页面上有效,但在我的登录页面上无效

这来自App.tsx文件:

onst App: React.FC<AppProps> = () => {
  // Disable mapbox telemetry due to privacy policy
  useEffect(() => {
    MapboxGL.setTelemetryEnabled(false);
  });

  return (
    <NavigationNativeContainer>
      <NavigationStack.Navigator initialRouteName="Home">
        <NavigationStack.Screen
          name="Home"
          component={HomeScreen}
          options={{ headerShown: false }}
        />
        <NavigationStack.Screen
          name="Registration"
          component={RegistrationScreen}
          options={{ headerShown: false }}
        />
        {/* <NavigationStack.Screen
          name="Login"
          component={LoginScreen}
          options={{ headerShown: false }}
        /> */}
        <NavigationStack.Screen name="Details" component={DetailsScreen} />
      </NavigationStack.Navigator>
    </NavigationNativeContainer>
  );
};
onst应用程序:React.FC=()=>{
//由于隐私策略,禁用mapbox遥测
useffect(()=>{
MapboxGL.SettleMetryEnabled(false);
});
返回(
{/*  */}
);
};

我发现一个错误,当我取消对该部分的注释时,找不到“Login”。

您能发布注册页面代码吗?您遇到了什么错误?@Nobady我添加了另一个部分,我认为这可能更有用。@CharlesMangwa看到更新的qs PLSY您似乎混合了React Navigation 5和React Navigation 4 API。v5文档v4文档: