React-Router: почему добавление в историю меняет мой URL? - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь использовать createMemoryHistory для перемещения без изменения адреса URL, потому что мое приложение будет отображаться внутри iframe.Однако, когда я нажимаю на history, кажется, обновляется мой URL.Любые советы будут с благодарностью!

//history.js
import createMemoryHistory from "history/createMemoryHistory";
const history = createMemoryHistory();
export default history;

//App.js
import history from './history/history';
...
<Router>
   <Route
      path={'/'}
      render={(props) => <Component {...props}/>}
   />
</Router>

//component.js
...
function handleClick(history) {
    history.push('somePath'); // this updates my url to be url.com/somePath
} 
return (<Button onClick={() => handleClick(this.props.history)}>);

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

При использовании MemoryHistory вы должны передать объект истории на маршрутизатор и использовать его непосредственно после импорта созданной истории, например

App.js

import history from './history/history';
...
<Router history={history}>
   <Route
      path={'/'}
      render={(props) => <Component {...props}/>}
   />
</Router>

component.js

import history from './history/history';
...
function handleClick() {
    history.push('somePath'); // this updates my url to be url.com/somePath
} 
return (<Button onClick={() => handleClick()}>);
0 голосов
/ 25 сентября 2018

Исправлена ​​проблема, я импортировал что-то неправильно LOL.Все еще застрял с createMemoryHistory в конце вместо createBrowserHistory

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...