重新加载动态页面时出现此错误。
错误:无法在 Object.didPutListener (SimpleEventPlugin.js:210) 的 Object.getNodeFromInstance (ReactDOMComponentTree.js:172) 的 precacheChildNodes (ReactDOMComponentTree.js:96) 的不变量 (invariant.js:38) 中找到 ID 为 275 的元素在 Object.putListener (EventPluginHub.js:143) 在 Object.putListener (ReactDOMComponent.js:176) 在 CallbackQueue.notifyAll (CallbackQueue.js:76) 在 ReactReconcileTransaction.close (ReactReconcileTransaction.js:80) 在 ReactReconcileTransaction.closeAll (Transaction .js:206) 在 ReactReconcileTransaction.perform (Transaction.js:153)
和
Uncaught (in promise) TypeError: Cannot read property 'remove' of undefined at Object.willDeleteListener (SimpleEventPlugin.js:220) at Object.deleteAllListeners (EventPluginHub.js:201) at ReactDOMComponent.unmountComponent (ReactDOMComponent.js:976) at Object .unmountComponent (ReactReconciler.js:79) 在 ReactCompositeComponentWrapper.unmountComponent (ReactCompositeComponent.js:418) 在 Object.unmountComponent (ReactReconciler.js:79) 在 Object.unmountChildren (ReactChildReconciler.js:146) 在 ReactDOMComponent.unmountChildren (ReactMultiChild.js :373) 在 ReactDOMComponent.unmountComponent (ReactDOMComponent.js:974) 在 Object.unmountComponent (ReactReconciler.js:79)
在这个动态页面中,我有一个原始 html,在其中我用组件 react-image-gallery 替换了 @gallery{Id}@ 的部分。我不能解决这个问题,因为在我有 2 个画廊的动态路径中,它运行良好,并且具有服务器端导航和重新加载页面。但是在使用相同动态组件的特定动态路径中,我仅在重新加载时才会收到此错误,这意味着如果复制链接并将其粘贴以立即访问此页面,我会收到此错误。通过使用检查我看到
<div data-reactid="274"> // this is item in children
<p>............</p>
<div data-reactid="275"></div>//but this is another item in children that for unknow reason nested in data-reactid="274"
</div>
但我应该看看
<div data-reactid="274">
<p>............</p>
</div>
<div data-reactid="275"></div>
我认为这是因为要添加更多画廊(更多数据)。问题是,当我使用服务器端导航导航到那里以及重新加载页面时,当我得到要渲染的对象数组时是相同的。我通过这样做得到数组。
children = parts.map((item, index) => {
if (typeof item === "string") {
return <div key={index} dangerouslySetInnerHTML={{ __html: item }} />
} else {
return <div key={index}>{item}</div>;
}
})