У меня есть маршрут React, определенный в моем приложении как:
<PrivateRoute path="/home" component={Home} />
Компонент загружает пользователя из хранилища, затем в зависимости от типа выполняет перенаправление. Он определяется как:
import React, { useEffect, memo } from 'react'
import { connect } from 'react-redux'
import { compose } from 'redux'
import { createStructuredSelector } from 'reselect'
import { Redirect } from 'react-router-dom'
import { useInjectSaga } from '../../utils/injectSaga'
import {
makeSelectCurrentUser,
makeSelectLoading,
makeSelectError
} from '../../containers/App/selectors'
import { loadUser } from '../../containers/App/actions'
import saga from '../../components/Header/saga'
const key = 'home'
function Home({ user, loading, error, loadUser }) {
useInjectSaga({ key, saga })
const username = localStorage.getItem('username')
useEffect(() => {
loadUser(username)
}, [])
return !loading && user && !error ? (
<Redirect to={user.type === 'admin' ? '/admin' : '/promoter'} />
) : (
<div>Loading...</div>
)
}
const mapStateToProps = createStructuredSelector({
user: makeSelectCurrentUser(),
loading: makeSelectLoading(),
error: makeSelectError()
})
const mapDispatchToProps = dispatch => {
return {
loadUser: username => dispatch(loadUser(username))
}
}
const withConnect = connect(mapStateToProps, mapDispatchToProps)
export default compose(withConnect, memo)(Home)
Когда я выполняю код, он работает. Однако в консоли появляется предупреждение:
index.js:1437 Warning: Failed prop type: Invalid prop `component` supplied to `PrivateRoute`.
Указывает на линию с моим "домашним" маршрутом.
Что я делаю не так? Как это должно быть сделано?