Когда состояние изменяется, React Триггеры componentDidUpdate()
метод, а затем я:Рендер компонент внутри другого в React
componentDidUpdate: function() {
React.render(new SubmitButton, $('.uploader-submit').get(0));
}
Как вы видели, я рендеринга SubmitButton
когда определенное состояние изменяется , но мой вопрос: это лучшее поведение, чтобы получить эту функцию?
Мой сценарий: Я закачаю фотографию. Когда изменяется номер input[type=file]
, я создаю новое свойство состояния, а затем запускается componentDidUpdate()
, ссылаясь на SubmitButton.
Это мой render()
метод:
render: function() {
return (
<div className="uploader">
<header className="uploader-header">
<div className="uploader-actions pull-left">
<div className="uploader-submit"></div>
<CancelButton router={this.props.router} />
</div>
<UploadButton callback={this.imageSelectedCallback} />
</header>
<Preview imageUri={this.state.imageUri} />
</div>
)
}
Не могу я сделать что-то вроде <Preview />
компонента? Я имею в виду, он есть, но что-то появляется, когда this.state.imageUri
отличается от null
. Это реализация Preview
:
var Preview = {
render: function() {
return (
<img src={this.props.imageUri} />
)
}
};
module.exports = React.createClass(Preview);
Да, я знаю - «Предварительный просмотр» невидим по умолчанию, потому что это изображение, но я хочу знать, если есть другой подход, чтобы достичь того, что я хочу: показать что-то основано на состоянии, используя метод render
.
Удивительный! Я думал, что это не очень хорошо, потому что у нас есть такие методы, как 'componentDidUpdate()' и т. Д. Но это гладкое и простое решение, которое работает как шарм! Спасибо вам и @reecer. :-) –