Я обновил свой пакет истории до последней версии, и я получил эту ошибку:
TypeError: setting getter-only property "location"
./modules/configureHistory.js/<
src/modules/configureHistory.js:2
1 | // @flow
> 2 | import { createBrowserHistory } from 'history'
3 | import qs from 'qs'
4 |
5 | const history = createBrowserHistory()
в этом коде: история. js
// @flow
import { createBrowserHistory } from 'history'
import qs from 'qs'
const history = createBrowserHistory()
history.location = {
...history.location,
query: qs.parse(history.location.search.substr(1)),
state: {},
}
/* istanbul ignore next */
history.listen(() => {
history.location = {
...history.location,
query: qs.parse(history.location.search.substr(1)),
state: history.location.state || {},
}
})
const { go, goBack, push, replace } = history
export { go, goBack, push, replace }
export default history
И я перенаправил своего пользователя вот так:
PrivateRoute.jsx
import React from 'react'
import PropTypes from 'prop-types'
import { Route, Redirect } from 'react-router-dom'
const RoutePrivate = ({ component: Component, isAuthenticated, to, ...rest }) => (
<Route
{...rest}
render={props =>
isAuthenticated ? (
<Component {...props} />
) : (
<Redirect
to={{
pathname: to,
state: { redirect: props.location.pathname, isAuthenticated },
}}
/>
)
}
/>
)
RoutePrivate.propTypes = {
component: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,
isAuthenticated: PropTypes.bool.isRequired,
location: PropTypes.object,
to: PropTypes.string,
}
RoutePrivate.defaultProps = {
to: '/',
}
export default RoutePrivate
Итак, этот частный маршрут перенаправляет моего пользователя на / если он не вошел в систему.
Я не нахожу нового решение для перенаправления на частный маршрут с историей местоположения. Какое решение проблемы с новой версией пакета истории?