【问题标题】:Material-UI : How to properly set userAgent for server-side renderingMaterial-UI:如何为服务器端渲染正确设置 userAgent
【发布时间】:2017-05-26 12:59:19
【问题描述】:

我收到了这个警告:

    Material-UI: userAgent should be supplied in the muiTheme 
    context for server-side rendering

使用以下服务器端渲染设置,我做错了什么:

    match({routes: R(), location}, (error, redirectLocation, renderProps) => {
    if (error) {
        console.error("error: "+ error)
    } else if (redirectLocation) {
        console.error("redirect to " + redirectLocation)
    } else if (renderProps) {

        const theme = getMuiTheme({userAgent: "all"})

        page = ReactDOMServer.renderToStaticMarkup(
        <MuiThemeProvider muiTheme={theme}>
            <Provider store={store}>
                <RouterContext {...renderProps} />
            </Provider>
        </MuiThemeProvider>
        )
    } else {
        console.error("location nof found: '"+ location +"'")
    }
    })

【问题讨论】:

标签: reactjs react-router material-ui


【解决方案1】:

在这个Razzle Material UI Styled Example 项目中,我是这样设置的:

server.js:

renderToString(<Application userAgent={request.headers['user-agent']} />)

client.js:

render(<Application userAgent={navigator.userAgent} />, document.getElementById('root'))

Main.js:

class Main extends Component {
    constructor(properties, context) {
        super(properties, context)

        this.muiTheme = getMuiTheme({
            userAgent: properties.userAgent
        })
    }

    render() {
        return (
            <MuiThemeProvider muiTheme={this.muiTheme}></MuiThemeProvider>
        )
    }
}

效果很好,我也觉得是对的。

【讨论】:

    猜你喜欢
    • 2020-10-01
    • 2019-02-24
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 2018-05-18
    • 2020-07-04
    • 2022-10-07
    • 1970-01-01
    相关资源
    最近更新 更多