メソッドコンポーネントが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)