提问人:Paul 提问时间:7/28/2022 最后编辑:Paul 更新时间:8/4/2022 访问量:606
findDOMNode 已弃用
findDOMNode is deprecated
问:
在我的网站上(用 React 编写),我使用日历,以便用户可以选择日期和时间范围。为此,我使用 react-advanced-datetimerange-picker 库。
同样在索引.js文件中,我使用了 <React.StrictMode>。因此,在使用该库时,我有一些警告。我想摆脱它们。
我知道删除 <React.StrictMode> 的最简单方法。 但这并不完全正确。 下面是我代码的一部分
return (
<DateTimeRangeContainer
ranges={ranges}
autoApply={true}
start={time.start}
end={time.end}
local={local}
applyCallback={handleDateRangeChange}
forceMobileMode
years={[2022, 2025]}
style={styleRange}
>
</DateTimeRangeContainer>
);
整个问题出在 DateTimeRangeContainer 组件上。如果我删除它,警告就会消失。所以这是我的警告:
react-dom.development.js:86 警告:在严格模式树中检测到旧上下文 API。所有 16.x 版本都将支持旧 API,但使用它的应用程序应迁移到新版本。请更新以下组件:FormControl。在此处了解有关此警告的更多信息:https://reactjs.org/link/legacy-context
第二。.
react-dom.development.js:86 警告:findDOMNode 在 StrictMode 中已弃用。findDOMNode 被传递给了 DateTimeRangeContainer 的实例,该实例位于 StrictMode 中。相反,请直接将 ref 添加到要引用的元素。在此处了解有关安全使用引用的更多信息:https://reactjs.org/link/strict-mode-find-node
帮我修复它们
答:
该问题很可能是由于库中使用了旧版本的 react。一种解决方法是使用另一个库,另一种方法是等待作者更新库。
我在库存储库上创建了一个问题。请在这里找到它
评论
findDOMNode
react-advanced-datetimerange-picker
findDOMNode