我想恢复所有子级的DOM.offsetWidth。它们都具有不同的大小,并且取决于基于CSS的样式主题。
在ComponentDidUpdate()方法上一切正常,但这不是第一次触发。
我不能将所有代码都放在示例代码的下面,所以:
父示例
class Parent extends Component {
this.childDOMRef = null;
setChildDom(element) {
this.childDOMRef = element;
}
componentDidMount(){
const childrenWidth = [...this.childDOMRef.children]
.reduce((prev, current) => prev + current.offsetWidth, 0);
console.log(childrenWidth); // :( it is 0 on DidMount
}
render(){
return <ChildStateLess
items={this.props.items} // I receive from redux
setInnerRef={this.setChildDom}
>
}
}
子示例(无状态)
const ChildStateLess = ({setInnerRef, items}) => {
<div ref={setInnerRef}>
{ items.map(item) => (<div>{item}</div>)}
</div>
};
///更新
OnDidMount 显然不存在子项。
OnDidUpdate 全部存在,但是在进入Web时不会触发此方法。
/// UPDATE 2
保留数字引用(对于最后呈现的内容)无法正常工作,无法获得DOM属性