當狀態改變時,作出反應的觸發componentDidUpdate()
方法,到那時我做的:渲染內的其他組件的陣營
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。 :-) –