Передача состояния через this.history.pushState ()
Я использую реагирующий маршрутизатор 1.0 и их интеграцию истории.
import { createHistory, useBasename } from 'history'
const history = useBasename(createHistory)({
basename: '/base-path'
});
export default (
<Router history={history}>
<Route path="/" component={require("Template")}>
<Route path="sub-page" component={require("SubPage")}/>
</Route>
</Router>
);
Я пытаюсь удалить идентификаторы из нашего API и в URL и передать собственную ссылку, созданнуюHATEOAS в объекте JSON. Я хотел бы передать данные через параметр состояния pushState.
onClickEditButton(selfLinkObject) {
this.history.pushState(selfLinkObject, "/my/url");
}
Но когда я пытаюсь получить состояние, оно не передается.
import React from "react"
import { History } from "react-router"
export default React.createClass({
mixins: [History],
componentDidMount() {
console.log(this.state);
console.log(this.history.state);
console.log(history.state);
},
render() {
<p>Check the console to see if the state is passed from the pushState(state, url, params);</p>
}
});
Кажется, что именно так pushState должен был работать в соответствии сДокументация Mozilla по pushState потому что браузер сохраняет объекты состояния на диск пользователя, чтобы их можно было восстановить после того, как пользователь перезапустит браузер.
Кто-нибудь знает, как или если я могу передать данные в штат или есть лучший способ сделать это?