メソッドコンポーネントがreactコンポーネントにジャンプし、this.props.history.pushがエラーを出しますUncaught TypeError:Undefinedのプロパティ 'push'を読み取れません



Method Component Jumps React Component



状況:footerNavコンポーネントがアプリに導入され(ルートも導入されています)、footerNavのボタンをクリックしてジャンプすると、結果が正しくありません。

Uncaught TypeError:未定義のプロパティ 'push'を読み取れません



解決する:

方法1親コンポーネントのアプリオブジェクトをpropTypesを介して子コンポーネントのfooterNavに渡します

import PropTypes from 'prop-types' class MenuHeader extends React.Component { static propTypes = { parentThis: PropTypes.object.isRequired, } ... /* At this time footerNav click to jump: */ this.props.parentThis.props.history.push(routerName) ... } export default MenuHeader

上記の方法は比較します...低いですか?



react-router-domwithRouterパッケージコンポーネントを使用する

import {withRouter } from 'react-router-dom' class MenuHeader extends React.Component { ... /* At this time footerNav click to jump: */ this.props.history.push(routerName) ... } export default withRouter(MenuHeader)