javascript - 在渲染 React 组件之前等待 AJAX 调用完成

标签 javascript jquery ajax reactjs

假设我有以下代码:

componentDidMount() {
    $.ajax({
        type: 'GET',
        url: '/data/',
        dataType: 'text',
        success: function(response) {
            this.setState({data: response})
        }.bind(this)
    });
}

render() {
    let {rows} = this.state.data
    return (
            <div>
                WOW
                {this.state.data}
                <FilterTable rows = {this.state.data} />
            </div>
        );
}

如何才能使 render() 部分在 ajax 调用完成之前不执行?

谢谢!

编辑:固定代码。

最佳答案

我宁愿选择一种非常简单的方法。我将有一个名为例如“show”的状态,最初将值设置为 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>
        );
}

关于javascript - 在渲染 React 组件之前等待 AJAX 调用完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38981287/

相关文章:

javascript - 使用 javascript for 循环在一个网页中创建 100 个小型 Iframe

JavaScript : Encode byte [ ] array to base64

javascript - 如何将其与express.js 路线相匹配

c# - 在 Ajax.BeginForm 提交上显示加载程序

php - Ajax:跨域请求未使用 PHP 在 Safari IOS 中设置 cookie

javascript - "Run JavaScript on Web Page"的 iOS 12 快捷方式设置问题

javascript - $(document).ready(initialize) 和 $(document).on ('ready' , initialize) 有什么区别?

javascript - 找到每个div的第一段

java - 我如何为 ajax 查询计时(发送查询、处理、接收响应)

javascript - 将值从模态传递到主窗体