У меня есть div, который имеет определенную высоту и ширину.
При размещении текста в этом div, я хочу, чтобы он был просто идеальным размером.Это означает, что текст достаточно большой, чтобы поместиться в div, но не будет переполнен.
Так что моя логика выглядит примерно так:
calculateFitAndOverflow(){
// I do some div height and overflow calculations here
return {
fit: true, // or false
overflow: false // or true
}
}
componentDidMount(){
var fit_and_overflow = this.calculateFitAndOverflow();
this.setState(fit_and_overflow);
}
componentDidUpdate(){
if(this.state.fit === false){
var fit_and_overflow = this.calculateFitAndOverflow();
this.setState(fit_and_overflow);
}
}
Это работает хорошо, но сталкивается с проблемами для некоторых условий запуска.
Когда начальный размер шрифта маленький, а div большой, setState
должен вызываться много раз, когда React преждевременно выдает «Превышена максимальная глубина обновления».
Итак, мои вопросы:
- Есть ли лучший способ решить эту проблему без выполнения цикла
render -> check height -> adjust -> render
? - Могу ли я остановить React от выдачи ошибкии это будет продолжаться?