Перепрошивка React Router v4 - PullRequest
       13

Перепрошивка React Router v4

0 голосов
/ 12 января 2019

Я использую это руководство для рендеринга create-реагировать на приложение на сервере:

https://medium.com/@cereallarceny/server-side-rendering-in-create-react-app-with-all-the-goodies-without-ejecting-4c889d7db25e

Теперь мой index.js выглядит так:

...
const Application = (
    <Provider store={store}>
        <ConnectedRouter history={history}>
            <Frontload noServerRender={true}>
                <App />
            </Frontload>
        </ConnectedRouter>
    </Provider>
);

const root = document.querySelector('#root');

if (root.hasChildNodes() === true) {
    // If it's an SSR, we use hydrate to get fast page loads by just
    // attaching event listeners after the initial render
    Loadable.preloadReady().then(() => {
        hydrate(Application, root);
    });
} else {
    // If we're not running on the server, just render like normal
    render(Application, root);
}

И мой App.js:

...
const frontload = async (props) => {
    await props.getSettings()
}

class App extends React.Component {
    render() {
        return (
            <MuiThemeProvider theme={createMuiTheme(theme)}>
                <JssProvider jss={jss} generateClassName={generateClassName}>
                    <div>
                        <CssBaseline />
                        <NavbarContainer />

                        <Routes />

                        <FooterContainer />
                    </div>
                </JssProvider>
            </MuiThemeProvider>
        )
    }
}
export default withRouter(connect(state => ({
    settings: state.pages.settings
}), dispatch => ({
    getSettings: () => dispatch(getPage('settings'))
}))(
    frontloadConnect(frontload, {
        onMount: true,
        onUpdate: false
    })(App)
))

Проблема странная. Когда я перемещаюсь по сайту через Link s, все в порядке, но когда я нажимаю кнопку «Назад» в браузере, URL-адрес мигает, браузер переходит на предыдущую страницу, а кнопка «Вперед» становится серой! *

Я пытался удалить withRouter из App, но тогда Назад и Вперед не будет работать вообще!

Я пытался отключить и включить функции и протестировал, но он не работает.

1 Ответ

0 голосов
/ 16 января 2019

Похоже, возникла проблема с совместимостью. После запуска yarn upgrade --dist Кажется, проблема решена. Я до сих пор не знаю, в чем конкретно проблема, но я рада, что она исчезла:)

Для тех, кто следовал упомянутому руководству, необходимо изучить критические изменения подключенного маршрутизатора .

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