【发布时间】:2019-04-29 18:31:11
【问题描述】:
如何使用hoist-non-react-statics 和withRouter
我正在Feedback 组件中添加一个静态方法。
这是我的原始代码。我正在尝试使用 Context API (react v 16.6) 中的新更改
Feedback.contextType = AppContext;
export default withRouter( Feedback );
这工作正常,但我在控制台中收到以下警告。
警告:withRouter(Feedback):功能组件不支持 上下文类型。
所以为了修复警告,我使用了 Dan here 提出的方法。它也在反应docs
中提到所以我现在有这段代码,但它不起作用。
导入hoist-non-react-statics
import {Link, withRouter} from 'react-router-dom';
import hoistNonReactStatics from 'hoist-non-react-statics';
并像这样导出组件
Feedback.contextType = AppContext;
hoistNonReactStatics( Feedback, withRouter(Feedback) );
export default Feedback;
但由于某种原因,props 中未填充路由器信息(历史记录、匹配等)
任何指针为什么它不工作?
【问题讨论】:
-
目前还不清楚是什么问题。提升非反应静态和道具之间有什么联系?你是说道具在没有提升非ReactStatics 的情况下可以正常工作,但不能在提升非反应状态下工作?
-
@estus 我已经用更多细节更新了这个问题......
-
我无法重现此警告,但提供了修复。希望这会有所帮助。
标签: javascript reactjs router react-router-v4