我有以下 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/