我想检测当前组件是由ReactDOM还是由ReactDOMServer呈现。经典的canUseDom
const canUseDOM = () => Boolean(
typeof window !== 'undefined'
&& window.document
&& window.document.createElement
)
不起作用,因为ReactDOMServer也可以在定义窗口的broswer上下文中使用。我想做这样的事情:
const MyComponent = () =>
isRenderedByReactDOM()
? (<div>I am being rendered by ReactDOM.render</div>)
: (<div>I am being rendered by ReactDOMServer.renderToString / ReactDOMServer.renderToStaticMarkup</div>)
答案 0 :(得分:2)
服务器端组件不执行componentDidMount()
。那就是你应该放置任何纯粹的浏览器端逻辑。