У меня есть проект, над которым работает редукс. Но когда я нажимаю на компонент <Link>
или нажимаю кнопку «предыдущая страница» в chrome, redux сохраняет состояния, которые я изменил ранее. Я попробовал действие LOCATION_CHANGE
из connected-react-router
и использовал его в редьюсере, но, похоже, это не работает.
редуктор:
import {LOCATION_CHANGE} from "connected-react-router"
function reducer(state=defaultState,action) {
switch (action.type) {
case LOCATION_CHANGE:
console.info("changed")
return defaultState
default:
return state
}
}
У меня не так много кода для показа. Просто реагируйте, firebase и немного редукции, управляющей другими вещами.
я сделал ответ
Вы можете попробовать что-то вроде этого:
class ScrollToTop extends Component {
componentDidUpdate(prevProps) {
if (this.props.location !== prevProps.location) {
window.scrollTo(0, 0);
dispatch({ type: LOCATION_CHANGE });
}
}
render() {
return this.props.children
}
}
export default withRouter(ScrollToTop)
const App = () => (
<Router>
<ScrollToTop>
<App/>
</ScrollToTop>
</Router>
)
componentDidUpdate
нет, но componentWillUnmount
работает для ссылок и следующей страницы, componentDidMount
для последней страницы. Спасибо за идею
хорошо, извините, я не мог попробовать это для вас, пожалуйста
у вас есть код, чтобы показать?