Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый Вчера, 20:35
Аватар для fxobject
Профессор
Отправить личное сообщение для fxobject Посмотреть профиль Найти все сообщения от fxobject
 
Регистрация: 01.03.2021
Сообщений: 152

React + Konva
О великие Гуры, да помогут они нерадивому студенту!
Имеем Konva как вложенный компонент React. Важно, для Konva выделяется область и холст должен занять все выделенное место. Т.е. адаптивный холст.
что делать при resize - не писать, там понятно. Но вот как занять холстом 100% выделенное место при первом render? что то никак не получается.
что то типа такого:
<Stage width={'500'} height={'500'} ref={this.stage}>
   <Layer ref={this.layer}>


пытаюсь достать через componentDidMount но что то никак не думается.....
О юниоры и middle, не дайте студенту засохнуть.... (((( thanks

p.s. осенний ветер говорит нам, что лето - просрали...
Ответить с цитированием
  #2 (permalink)  
Старый Вчера, 20:59
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,839

<Stage width={window.innerWidth} height={window.innerHeight} ref={this.stage}>

?
Ответить с цитированием
  #3 (permalink)  
Старый Вчера, 21:05
Аватар для fxobject
Профессор
Отправить личное сообщение для fxobject Посмотреть профиль Найти все сообщения от fxobject
 
Регистрация: 01.03.2021
Сообщений: 152

не катит. выделенное место - это вышестоящий родительский элемент DOM, никак не window
Ответить с цитированием
  #4 (permalink)  
Старый Вчера, 21:16
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,839

this.props.containerRef.offsetWidth ?
Ответить с цитированием
  #5 (permalink)  
Старый Вчера, 21:42
Аватар для fxobject
Профессор
Отправить личное сообщение для fxobject Посмотреть профиль Найти все сообщения от fxobject
 
Регистрация: 01.03.2021
Сообщений: 152

ох та хде их взять то?
Контейнер также является компонентом React и также находится на этапе первого render. Причем, вложенные компоненты формируются примерно так:
{/*--- все вложенные компоненты -----------------------------*/ }
          { Object.keys(this.state.component).map((index)=>{
            return(
              <React.Fragment key={index}>
               { this.state.component[index].feature(
                 {  ...this.state.component[index].props },
                 { frameDisable  :  this.state.frameDisable,
                   indexName     : index,
                   dispatchEvent : this.componentHandler.bind(this,index)
                 }
               )}
              </React.Fragment>

Если очень кратко, то конечная страница из всех компонентов, классов и их производных, вообще чего бы то ни было формируется при помощи массива.
Вот где то в этом map и есть компонента с графиком.
Но не суть - на момент render нету параметров width и height родителя. даже если поставлю id и отладчиком посмотрю что то типа
getBoundingClientRect().
т.е. на момент первого рендера приходится уходить создавая холст с нулевым width и height и без прорисовки чего бы то ни было. Т.е. просто холст
Затем componentDidMount. Смотрите что получается...

<div style={{width:'100%',height:'100%'}} ref={this.refContainer}>
      <Stage width={'0'} height={'0'} ref={this.REF}>

вставил дополнительно div 100%
первый рендер идет с 0 width и height
componentDidMount. В нем смотрим
this.refContainer.current.getBoundingClientRect()
т.е. этот тот вот первый DIV
а там НУЛИ. ну и как дальше?
Ответить с цитированием
  #6 (permalink)  
Старый Вчера, 22:01
Аватар для fxobject
Профессор
Отправить личное сообщение для fxobject Посмотреть профиль Найти все сообщения от fxobject
 
Регистрация: 01.03.2021
Сообщений: 152

даже если так сделать, будут все равно нули
<div style={{width:'100%',height:'100%'}} ref={this.refContainer}>
      <Stage width={'100'} height={'100'} ref={this.REF}>
Изображения:
Тип файла: png 1.png (11.6 Кб, 2 просмотров)
Ответить с цитированием
  #7 (permalink)  
Старый Вчера, 22:27
Аватар для fxobject
Профессор
Отправить личное сообщение для fxobject Посмотреть профиль Найти все сообщения от fxobject
 
Регистрация: 01.03.2021
Сообщений: 152

Вот еще момент. Страница организована таким образом, что в ней отражаются вкладки. Так вот, компонента с графиком при открытии находится в "спрятанной" вкладке. Собственно поэтому у нее и нули.
Думаю при переключении вкладки (событие) там значения должны появится. Но какой то путь ну совсем не айс...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
react передача данных дочернему элементу riaron86 Node.JS 6 11.05.2023 18:51
Как правильно отрендерить данные на react с разрывом? s24344 Элементы интерфейса 0 28.01.2019 19:35
виджет комментариев переделать с react на redux melnikov24 Node.JS 1 17.01.2019 12:51
node.js + react не принимает пост запрос korih Node.JS 0 15.04.2018 17:52
Ищу Senior Frontend (React, Angular), Москва, 140 - 180 000 gross, full time офис. Ekaterina Polyakova Работа 0 11.08.2016 19:07