HTML-холст и рисование в отдельных компонентах - PullRequest
0 голосов
/ 28 октября 2018

Создание CAD-подобного приложения. У меня есть компонент, содержащий холст.В componentDidUpdate я рисую графику

render() {   
  return <canvas ref={c => this.canvas = c}/> 
}

componentDidUpdate() {
   // drawing
   const context = canvas.getContext("2d");  
   ....
}

Я хочу разделить рисунок на отдельный компонент.

render() {   
  return (
    <canvas ref={c => this.canvas = c}/> 
    <Drawing ref={c => this.drawing = c} 
             getCanvas={() => this.canvas} />
  );
}

componentDidUpdate() {
   this.drawing.draw();
}

const context = canvas.getContext("2d");  
   ....
}

// drawing component
class Drawing extends Component {
  draw() {
    const context = this.props.getCanvas.getContext("2d");
    ...
  }

  render() { return null }
}

Это прекрасно работает, но кажется не элегантным (вызов this.drawing.draw() выглядит плохо).А позже я хочу подключить этот компонент Drawing к Redx.Но, чем в компоненте Drawing, я должен использовать render, что называется, если хранилище редуксов изменилось.

Я запутался, как это сделать.Рисовать в функции render?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...