react-native - React / Ionic:无效的钩子调用问题(使用历史记录进行重定向)
问题描述
我正在尝试使用单击事件和历史记录将用户重定向到此路由“/tab1”。我得到一个无效的钩子调用问题。我试图将其移出,但似乎没有任何效果。
请帮忙 !谢谢 !
编码 :
export class Tab2 extends Component {
constructor(props: any) {
super(props);
this.playVideo = this.playVideo.bind(this)
}
playVideo() {
// THE PROBLEM
const history = useHistory();
// NEED SOME REDIRECTION ON CLICK HERE
history.push("/tab1")
}
render() {
return (
<IonPage>
<IonHeader>
<IonToolbar>
<IonTitle>Tab 2</IonTitle>
</IonToolbar>
</IonHeader>
<IonContent>
<IonHeader collapse="condense">
<IonToolbar>
<IonTitle size="large">Tab 2</IonTitle>
</IonToolbar>
</IonHeader>
<IonButton onClick={this.playVideo}>This is a play button</IonButton>
</IonContent>
</IonPage>
);
}
};
解决方案
你只能在功能组件中使用钩子
export const Tab2 =() => {
const history = useHistory();
const playVideo =()=> {
history.push("/tab1")
}
return (
<IonPage>
<IonHeader>
<IonToolbar>
<IonTitle>Tab 2</IonTitle>
</IonToolbar>
</IonHeader>
<IonContent>
<IonHeader collapse="condense">
<IonToolbar>
<IonTitle size="large">Tab 2</IonTitle>
</IonToolbar>
</IonHeader>
<IonButton onClick={()=>playVideo()}>This is a play button</IonButton>
</IonContent>
</IonPage>
);
};
推荐阅读
- java - 如何使用拖动器 2 创建一个带有模拟数据的单例类?
- python - python中的加密货币相关性,使用字典
- c# - 如何使用反射将类型对象转换为 C# 中的列表。我可以访问对象中的属性,但不能访问值,有什么建议吗?
- stenciljs - TestWindow 不是 Stenciljs 单元测试中的构造函数
- ios - 无法从 iOS 中的“MyFiles”附加和发布 pdf 文件
- highcharts - 使用轴类型“类别”时,与 x 轴相反的 Highcharts 人口金字塔未正确标记
- c# - C# - 使用 WMI 获取带有友好名称的 COM 端口
- ssl - 在 IIS 中部署应用程序
- ksqldb - 来自流主题(Json 格式)的新流,没有任何数据
- sql - 按不同值选择所有行,并限制不同值