【发布时间】:2018-07-02 23:23:25
【问题描述】:
拥有一个包含大量图片的页面,本质上是一个图片库。图库页面可能会更新以包含新的或删除现有的图像条目。使用以下函数创建图像的条目,第一次调用该函数时,它成功完成,后续调用处理更新的模型,失败并出现异常
'未捕获的错误:Invariant Violation'。
这是什么原因造成的?
render: function () {
var imageEntries = this.props.map(function (entry) {
var divStyle = {
backgroundImage: 'url(' + entry.preview + ')',
};
return React.DOM.div({key: entry.key, className: 'image-stream-entry'},
React.DOM.div({className: 'image', style: divStyle}),
imageMetadata(entry)
);
});
return (
React.DOM.div(null, imageEntries)
);
}
【问题讨论】:
-
如果你使用未压缩的 React 构建,你会收到有用的错误消息。
-
imageMetadata是做什么的? -
如果您正在执行异步更新,则可能需要在调用 setState 之前检查 isMounted,因为在请求完成时可能不再安装组件的实例。见facebook.github.io/react/docs/component-api.html#ismounted
-
在这一行:
var imageEntries = this.props.map(function (entry) {我认为您缺少实际的 prop。它应该类似于:var imageEntries = this.props.entries.map(function (entry) {。map是 javascript 的 map 函数。由于语法错误,我遇到了类似的错误。
标签: javascript reactjs