如何使rehydrate更新稍微改变了样式道具

时间:2017-09-05 12:26:35

标签: javascript reactjs isomorphic

让我说我有一个非常简单的应用程序,使用以下渲染方法。

render(){
    return (<div style={{height:window.innerHeight}}/>);
}

导致以下DOM:

<div data-reactroot="">
    <div style="height:938px">
    </div>
</div>

现在,当我尝试重新水化DOM时,我得到一个警告,说样式道具不匹配,但除非div的高度没有更新到它应该是什么,否则仍然可以正常工作。

修复警告或忽略警告(如同其他所有工作)的最佳方法是什么,并让反应更新DOM元素。

请注意:   - 我认为这很好用。反应15.x.现在使用16.0.0;   - 在这个玩具示例中,我显然可以使用高度:&#34; 100%&#34;但在现实生活中,我没有这种奢侈品,必须以最终取决于视口尺寸的方式计算尺寸。

1 个答案:

答案 0 :(得分:0)

McGyver在这里做了什么修复,在控制台上阅读这些警告然后如果我得到那些警告:

setTimeout(function(){
                ReactDOM.unmountComponentAtNode(RoboReact.rootParent);
                ReactDOM.render(RoboReact.rootElement,RoboReact.rootParent);
        },100);

(由于某种原因似乎无法使用setTimeout)