javascript - react : Delay rendering of JSON data?

标签 javascript arrays json reactjs

我有以下 React 类。首先,控制台将打印一个空数组 {},这将返回空 div。然而,半秒后控制台将打印正确的值 - 但空的 div 仍然存在。我应该如何更改类以正确加载 JSON?

var TableData = React.createClass({

    render: function() {
        console.info(JSON.stringify(this.props.summary));

        if (!this.props.data || !this.props.summary) {
            return <div>Loading name table..</div>
        }

        var summary = this.props.table;

        var nameTable =  summary.nameTable;
        var nameTableArr = Object.values(nameTable);
        return ( // A table is returned here, works with the same data structure as is present in the JSON

如果我进入控制台,console.info 最初会打印一个空的 JSON 字符串 {},它会正确返回“正在加载名称表...”div。但是,半秒后数据会打印在控制台中,但它永远不会超出 if 语句并填充表。

如果我更改 nameTable 变量以包含“手动”数据,它就会起作用,因此它必须是渲染延迟半秒的服务器端数据的东西。

如何更改上述类以延迟渲染,例如 1 秒,然后填充表格?我怀疑在那种情况下它会起作用。

删除 if 语句会导致控制台中出现 Uncaught TypeError: Cannot conversion undefined or null to object ,这是有道理的,因为字符串确实有半秒为空。

最佳答案

我没有 React 经验,但这看起来您在异步行为方面遇到了问题。

为了给您提供更多帮助,我需要调用 ajax 的代码部分。

我认为整个问题是,当还没有结果时,您的代码会首先触发,并且在加载数据后,它不会再次触发。

因此,请仔细查看您对 AJAX 异步内容的处理,因为您的问题就在那里。

关于javascript - react : Delay rendering of JSON data?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41610314/

相关文章:

javascript - IE 9 中的停止事件(无需升级到 Prototype 1.7)

javascript - 函数 getElementOfArrayProperty() 工作但无法通过测试

arrays - x86 汇编代码中的 For 循环和数组遍历

jquery - Grails JSON 响应由服务生成并由 Controller 传递

java - 从资源加载时 GSON 出现 EOF 错误

javascript - 文档上的write()使Internet Explorer 11崩溃

javascript - 使用 Javascript 更改文本

javascript - 为什么在 Redux store 中使用 spread operator?

javascript - AngularJS ng-重复数组数组

c++ - 使用 CPPREST-SDK 将 std::vector 转换为 JSON