React Ionic,从通过路由组件定义的组件访问 App.tsx 方法

Posted

技术标签:

【中文标题】React Ionic,从通过路由组件定义的组件访问 App.tsx 方法【英文标题】:React Ionic, Accessing App.tsx method from component defined through Route Component 【发布时间】:2020-12-11 04:14:03 【问题描述】:

我想问如何从 Home.tsx 访问 App.tsx 中定义的方法“testMethod”

这是 App.tsx(该组件有名为“testMethod”的方法)

import React from 'react';
import  IonApp, IonRouterOutlet  from '@ionic/react';
import  IonReactRouter  from '@ionic/react-router';
import  Route  from 'react-router-dom';
import Home from './pages/Home';

const App: React.FC = () => 
  const testMethod = () => 
    console.log('test');
  ;
  return (
    <IonApp>
      <IonReactRouter>
        <IonRouterOutlet>
          <Route path="/home" component=Home exact />
        </IonRouterOutlet>
      </IonReactRouter>
    </IonApp>
  );
;

export default App;

这是 Home.tsx

import  IonContent, IonPage, IonSplitPane, IonButton  from '@ionic/react';
import React from 'react';
import  RouteComponentProps  from 'react-router-dom';

interface ChildComponentProps extends RouteComponentProps<any> 

const Home: React.FC<ChildComponentProps> = (props) => 
  const onSubmit = () => 
    // I want to access testMethod from App.tsx in here
  ;
  return (
    <IonContent>
      <IonSplitPane contentId="main">
        <IonPage id="main">
          <IonButton
            expand="block"
            type="submit"
            class="ion-no-margin"
            onClick=onSubmit
          >
            Test
          </IonButton>
        </IonPage>
      </IonSplitPane>
    </IonContent>
  );
;

export default Home;

从 Home.tsx 中,当用户单击 Home.tsx 中的按钮时,我想执行 App.tsx 中定义的方法“testMethod”

我仍然不知道如何实现这一点,非常感谢您的帮助。

谢谢。

【问题讨论】:

【参考方案1】:
<Route path="/home" exact>
   <Home test=testMethod />
</Route>

Home 组件中

  const onSubmit = () => 
    // I want to access testMethod from App.tsx in here
    props.test()
  ;

【讨论】:

以上是关于React Ionic,从通过路由组件定义的组件访问 App.tsx 方法的主要内容,如果未能解决你的问题,请参考以下文章

在 react-router v4 中将自定义道具传递给路由器组件

外部反应组件/模块的路由

如何访问react组件中的url参数

如何在 React 路由器中嵌套动态页面路由组件?

react多个路由共用同一个组件模块,切换路由跳转页面不刷新问题

react ——withRouter——页面隐式传值—嵌套路由——渲染方式——自定义导航组件