Максимальная глубина обновления превышена путем добавления значения для выбора элемента

Вы можете просто установить свой viewBox svg в свою Bounding Box.

function setViewbox(svg) {
  var bB = svg.getBBox();
  svg.setAttribute('viewBox', bB.x + ',' + bB.y + ',' + bB.width + ',' + bB.height);
  }

document.querySelector('button').addEventListener('click', function() {
  setViewbox(document.querySelector('svg'));
  });
svg {  border: 1px solid }
<svg version="1.1" id="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 500 300" enable-background="new 0 0 500 300" xml:space="preserve" width="250" height="150">
  <path fill="none" stroke="#B2E230" d="M413.7,276.5c0,0,67-37,116,0c-24.1-33,16.4-53,0-34s-100-2-75-38" transform="translate(-75,-75)" />
</svg>
<button>setViewbox</button>

Примечание: оно также будет учитывайте невидимые якоря ваших патчей.

1
задан o-t-w 3 March 2019 в 15:29
поделиться

1 ответ

Вы устанавливаете свое состояние в componentDidMount, что приведет к повторной визуализации компонента, это бесконечный цикл, следовательно, ошибка. Если вы хотите, чтобы при инициализации ваше состояние было подпоркой, вам следует использовать конструктор (обязательно вызовите super):

class DisplayComponent extends Component<any> {
  constructor(props) {
    super(props);
    const match = this.props.match;
    this.props.setBrandandComponentState(
      match.params.brand,
      match.params.component
    );
    document.body.setAttribute("brand", match.params.brand);
  };
0
ответ дан Matt 3 March 2019 в 15:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: