2行にテキストを合わせる必要があります。私はReactコンポーネントを持っていますが、要素のレンダリング後に高さのみの高さを取得することはできません。これは私のコンポーネントですリアクタで実際の要素の高さを取得できません
constructor (props) {
super(props)
this.state = {
text: props.text
}
}
componentDidMount() {
let element = ReactDOM.findDOMNode(this)
let parent = element.parentNode
let originalText = element.innerText
let containerHeight = parent.offsetHeight
let temp = originalText
if (containerHeight < element.offsetHeight) {
while(containerHeight < ReactDOM.findDOMNode(this).offsetHeight) {
temp = temp.substr(0, temp.length-1)
this.setState({
text: temp
})
i++
console.log(temp,containerHeight,ReactDOM.findDOMNode(this).offsetHeight);
}
temp = temp.substr(0, temp.length-4) + '...'
this.setState({
text: temp
})
}
}
render() {
return (
<span>
{this.state.text}
</span>
)
}
それぞれの再レンダリング後にどのように要素の高さを得ることができますか?
PS私は問題を発見:
私はここcomponentDidUpdate()を使用する必要があり、私はそれは私が状態を更新するたびにトリガされているため、componentDidUpdate()メソッドでwhile
を使用する必要はありません。
本当に親の内部のテキストが必要ですか? '' 'let element = ReactDOM.findDOMNode(this) let parent = element.parentNode let originalText = element.innerText''' – lilezek