У меня есть эти маршруты
<Route exact path={`/admin/caters/:id`} component={Cater} />
<Route exact path={'/admin/caters/create'} component={CreateCater} />
При переходе на первый маршрут я получаю катера с заданным идентификатором. И компонент Cater отображается
Когда я перехожу ко второму маршруту, на странице отображается компонент CreateCater, но я заметил, что выполняются некоторые избыточные действия, которые используются в компоненте Cater. Так что оба компонента как-то визуализируются - но я не могу понять, почему.
Вот компоненты:
Катер:
class Cater extends Component {
async componentDidMount() {
console.log('Cater component did mount')
const { match: { params: { id }}} = this.props
this.props.get(id)
}
render() {
const { cater } = this.props
if(!cater) {
return null
}
else {
return (
<div>
... component data ...
</div>
)
}
}
}
const mapStateToProps = (state, props) => {
const { match: { params: { id }}} = props
return {
cater: caterSelectors.get(state, id)
}
}
const mapDispatchToProps = (dispatch, props) => {
return {
get: (id) => dispatch(caterActions.get(id))
}
}
export default connect(mapStateToProps, mapDispatchToProps)(Cater)
CreateCater:
export default class CreateCaterPage extends Component {
render() {
return (
<React.Fragment>
<Breadcrumbs />
<CaterForm />
</React.Fragment>
)
}
}
Когда я захожу в / admin / caters / create ', я вижу console.log в методе жизненного цикла componentenDidMount () внутри компонента Cater.
Я не могу понять, что я делаю неправильно: (