reactjs - 反应原生导航到另一个类
问题描述
嗨,我正在使用 stacknavigator 对本机做出反应,这是我的代码
import { NavigationContainer } from '@react-navigation/native';
import {Main} from "./Main";
import {Detail} from "./Detail";
import { createStackNavigator } from '@react-navigation/stack';
const Stack = createStackNavigator();
function App() {
return (
<NavigationContainer>
<Stack.Navigator initialRouteName="Main">
<Stack.Screen name="Main" component={Main} />
<Stack.Screen name="Detail" component={Detail} />
</Stack.Navigator>
</NavigationContainer>
)
}
export default App;
在主页上工作正常。我想导航到带有道具数据的详细信息页面。
主页。
import { NavigationContainer } from '@react-navigation/native';
import { useNavigation } from '@react-navigation/native';
export class Main extends Component {
constructor(props) {
super(props);
this.state = {
dataSource: [],
};
}
……
<Button
title="Go to Details"
onPress={() => navigation.navigate('Detail')}
当我按下按钮时它说
也试过这个,但它给出了另一个错误。
我该如何浏览它。谢谢
import { useNavigation } from '@react-navigation/native';
function Main () {
const navigation = useNavigation();
/>
新的
我更改了导航代码,现在它可以导航
<Button
title="Go to Details"
onPress={() => this.props.navigation.navigate('Details',{list:this.state.dataSource}) }
/>
在详细信息屏幕中,我必须设置状态数据来自道具。就这部分
const { yourParam } = this.props;
export class Details extends Component {
constructor() {
super();
this.state = {
dataSource: [],
};
}
解决方案
您不需要useNavigation()
(并且您不能在类组件中使用挂钩)您必须使用导航道具。
this.props.navigation.navigate('Detail')
您可以将参数添加到导航功能。
this.props.navigation.navigate('Detail', { yourParam: someData });
在您的Detail
组件上,您将能够获得参数。
const Detail = ({ route }) => {
const { yourParam } = route.params;
console.log(yourParam);
return (
<View />
);
}
班级:
const { yourParam } = this.props;
export class Details extends Component {
constructor() {
super();
this.state = {
dataSource: [],
};
}
componentDidMount() {
console.log(this.props.route.params)
}
render() {
return (<View />)
}
}
推荐阅读
- nginx - Nginx inode 信息泄露
- nestjs - Nestjs一对多关系保存问题
- python - 熊猫:如何找到一个组的百分比?
- jquery - 如果其中一个字段多选,如何将 html 表单转换为休息控制器的 ajax 请求?
- c# - 通过 RS232 读取称重数据
- regex - 如何删除字符串变量(Stata)中除某些单词之外的所有内容?
- javascript - Node.js 中的事件处理程序内部的异步等待
- docker - 从 docker 容器、使用 NGINX 和反向代理的主机发送邮件
- javascript - 有效的 JWT 对 nestJS 守卫无效
- python-3.x - tf.while_loop InvalidArgumentError 的问题:使用输入昏暗 0 的索引超出范围;输入只有 0 个暗淡 [Op:StridedSlice] 名称:strided_slice/