回答
你可以有一個布爾值來切換你的內容的顯示並在AJAX響應中翻轉它。
您可以將此布爾值應用於CSS屬性或整個DIV內容。
下面是可以工作的解決方案。它不會阻止Render被調用,它只會隱藏視圖中的數據相關元素,直到收到呼叫響應。
componentDidMount() {
$.ajax({
type: 'GET',
url: '/data/',
dataType: 'text',
success: function(response) {
this.setState({show: true, data: response})
}.bind(this)
});
}
render() {
let {data, show} = this.state;
let containerStyle = {
display: show ? 'block' : 'none'
};
return (
<div style={containerStyle}>
WOW
{this.state.pools}
<FilterTable rows = {this.state.data} />
</div>
);
}
如果你不想要這個組件渲染,直到Ajax調用完成後,你應該質疑爲什麼你在所有加載該組件之前Ajax調用完成。 如果您希望Component呈現this.state.pools而不管您是否擁有this.state.data,我會建議您的render方法有條件地呈現FilterTable。
render() {
let filterTable;
if (this.state.data && this.state.data.length > 0) { // assuming an array
filterTable = (
<FilterTable rows = {this.state.data} />
);
}
return (
WOW
{this.state.pools}
{filterTable}
);
}
但是,如果你想,當你有this.state.data倒不如有這個組件的父執行Ajax調用,只有當必要信息可創建此組件只呈現。一般來說,如果您立即更改componentDidMount中的組件數據,則只需將該信息作爲道具傳遞即可。
對不起,'this.props.data'和'this.props.pool'應該是相同的變量。 –
然後,我肯定會建議只有在擁有所有數據時才創建此組件的實例。 – jhonvolkd
我該怎麼做呢?對不起,我是React的初學者。 –
我假設您只想在接收數據時渲染組件。下面的代碼片段呈現了ajax調用成功的組件。 React具有允許我們動態地在DOM中裝入組件的函數。 您將需要導入反應。
import ReactDOM from 'react-dom';
componentDidMount() {
$.ajax({
type: 'GET',
url: '/data/',
dataType: 'text',
success: function(response) {
this.setState({data: response})
ReactDOM.render(<FilterTable rows = {response} />,document.getElementById('filterTableContainer'));
}.bind(this)
});
}
render() {
let {rows} = this.state.data
return (
<div>
WOW
{this.state.data}
<div id="filterTableContainer"></div>
</div>
);
}
正是我需要的!謝謝! –
我寧願選擇一個非常簡單的方法。我將有一個以show set value的名字命名爲false的狀態。並且在回調中成功的ajax返回後,將'show'的值設置爲true。並在渲染中根據'show'的值在返回中安裝jsx代碼。
componentDidMount() {
$.ajax({
type: 'GET',
url: '/data/',
dataType: 'text',
success: function(response) {
this.setState({data: response, show: true});
}.bind(this)
});
}
render() {
let {rows} = this.state.data
return (
<div>
WOW
{this.state.show === true : <div>
{this.state.data}
<FilterTable rows = {this.state.data} />
</div>: null
}
</div>
);
}
- 1. jQuery ajax調用不呈現html
- 2. AJAX調用後呈現Facebook評論框
- 3. 成功ajax調用後呈現部分?
- 4. Asp.Net AJAX調用的單控制呈現
- 5. jquery等待直到AJAX調用完成
- 6. 使用.ascx從ajax調用呈現內容
- 7. jquery ajax不呈現html
- 8. Grails Ajax呈現給GSP
- 9. ASP.Net Webforms w/AJAX慢呈現
- 10. AJAX部分呈現問題
- 11. AJAX不呈現部分
- 12. ajax調用不等待
- 13. 等待AJAX響應完全就緒/呈現
- 14. Rails ajax調用不正確地呈現我的format.js文件
- 15. 如何在jQuery Ajax調用後呈現聰明
- 16. 谷歌地圖InfoBox和ajax調用導致多個呈現
- 17. 從Ajax調用時不要呈現佈局
- 18. Grails - JS方法中的ajax調用後的呈現頁面
- 19. Magento:從Ajax調用模板時呈現空白頁
- 20. Rails中的ajax調用無法呈現js.haml
- 21. 如何在AJAX調用中重新呈現Django模板代碼
- 22. 部分視圖不會在IE 9.0中呈現fron ajax調用
- 23. 無法使用ajax呈現img標記
- 24. 在IE中使用AJAX呈現問題
- 25. MVC - 使用Ajax呈現局部視圖
- 26. cakePHP 1.3:使用Ajax呈現問題
- 27. AJAX-等到響應再進行下一次AJAX調用之前
- 28. 等待列表框完成呈現WPF
- 29. 等待工作完成呈現在vuejs
- 30. 如何將CSS樣式應用於AJAX調用後呈現的內容
你應該將渲染()函數成功函數內部 – KmasterYC
@KmasterYC這不是如何應對工程 – robertklep