Rerender вид в браузере изменить размер с React

Как я могу заставить React повторно визуализировать представление при изменении размера окна браузера?

Фон

У меня есть несколько блоков, которые я хочу разместить на странице по отдельности, но я также хочу, чтобы они обновлялись при изменении окна браузера. Сам конечный результат будет примерно такимБен Холланда Макет Pinterest, но написанный с использованием React не просто jQuery. Я'я еще далеко.

Код

Вот'мое приложение:

var MyApp = React.createClass({
  //does the http get from the server
  loadBlocksFromServer: function() {
    $.ajax({
      url: this.props.url,
      dataType: 'json',
      mimeType: 'textPlain',
      success: function(data) {
        this.setState({data: data.events});
      }.bind(this)
    });
  },
  getInitialState: function() {
    return {data: []};
  },
  componentWillMount: function() {
    this.loadBlocksFromServer();

  },    
  render: function() {
    return (
        
      
      
    );
  }
});

React.renderComponent(
  ,
  document.getElementById('view')
)

Тогда у меня естьBlock компонент (эквивалентныйPin в приведенном выше примере Pinterest):

var Block = React.createClass({
  render: function() {
    return (
        
        {this.props.title}
        <p>{this.props.children}</p>
        
    );
  }
});

и список / коллекция:Blocks

var Blocks = React.createClass({

  render: function() {

    //I've temporarily got code that assigns a random position
    //See inside the function below...

    var blockNodes = this.props.data.map(function (block) {   
      //temporary random position
      var topOffset = Math.random() * $(window).width() + 'px'; 
      var leftOffset = Math.random() * $(window).height() + 'px'; 
      return {block.description};
    });

    return (
        {blockNodes}
    );
  }
});
Вопрос

Должен ли я добавить JQueryизменить размер окна? Если да, то где?

$( window ).resize(function() {
  // re-render the component
});

Есть ли ещеReact» способ сделать это?

Ответы на вопрос(16)

Ваш ответ на вопрос