存在一个问题,其中第三方库正在设置document.body.innerHTML
,这会导致setState
似乎无法完全正常工作。在Chrome中的React工具中,在调试时,它会正确更新状态对象,但渲染的输出不会更新。
无法弄清楚这里发生了什么,没有错误发生,单步调试器对我来说没有什么特别的。刚开始我也使用dangerouslySetInnerHTML
,但是这个问题似乎也出现在普通的jsx值注入中。
在此示例中,如果将const ModifyBody = true;
的值修改为false并且可以按预期工作,但是使用document.body.innerHTML =
时它不会更新。
https://codepen.io/eibwen/pen/gjBxrZ
只需重述一下,它的第三方库执行body.innerHTML
。具体来说,它是create a medium.com-like popup when selecting text的库,如果您碰巧知道一个可以更好地与TypeScript / React兼容的库,那么我也将全力以赴