【发布时间】:2019-04-25 15:24:54
【问题描述】:
您好 Stackoverflow 社区,
我在我的 React 应用程序中做一些自定义动画,包括使用 position: absolute 更新组件的边距。这是一个可以切换进出的菜单。
我有一个ref 用于它在后面切换的元素,我在componentDidMount 中抓取了它的节点高度。我使用这个高度来知道将我的切换组件移动多远。
我注意到,当我的应用第一次渲染时,我的组件动画不正确,因为高度值始终为零。当我随后切换它时,它会起作用,因为componentDidMount 会触发并正确更新另一个节点的高度。
为了解决这个问题,我将我的 divHeight 字段移动到状态并开始在 componentDidMount 中调用 setState,现在我的可切换组件每次都能正确呈现。
这是一种反模式吗?我看不出如何根据 HTML 节点的物理属性更新我的 UI,因为这些只能通过 refs 中的 componentDidMount 获得...
【问题讨论】:
标签: javascript css reactjs state