Я создал небольшую панель инструментов ReactJS с помощью SocketIO для живых обновлений. Несмотря на то, что у меня есть обновление панели мониторинга, мне кажется, что я не совсем уверен, правильно ли я сделал это.
Больше всего меня беспокоит реквизит в getInitialState как анти-шаблон. Я создал панель мониторинга, которая получает прямые обновления с сервера, не требуя взаимодействия с пользователем, не загружая страницу. Из того, что я прочитал, this.state
должен содержать вещи, которые будут определять, должен ли компонент повторно отображаться, и this.props
.... Я еще не знаю.
Однако, когда вы изначально звоните React.render(<MyComponent />, ...)
, вы можете передавать только реквизиты. В моем случае я получаю все данные с сервера, поэтому исходные реквизиты в любом случае оказываются в this.state
. Итак, у всех моих компонентов есть что-то вроде этого:
getInitialState: function() {
return {
progress: this.props.progress,
latest_update: this.props.latest_update,
nearest_center: this.props.nearest_center
}
}
Что, если я неправильно истолковал вышеупомянутое сообщение в блоге, является анти-шаблоном. Но я не вижу другого способа впрыскивать государство в Компонент, и я не понимаю, почему это анти-шаблон, если я не переместлю все мои реквизиты, чтобы добавить initial
к ним. Во всяком случае, я чувствую, что это анти-шаблон, потому что теперь мне нужно отслеживать больше переменных, чем раньше (те, которые были добавлены с помощью initial
и без них).