在带有mapStateToProps, mapDispatchToProps
的React类组件中,每个传入状态/调度道具都易于通过PropTypes进行类型检查。
[重写mapStateToProps -> useSelector
和mapDispatchToProps -> useDispatch
时,我再也看不到任何进行原型检查的逻辑位置。除非我使用PropTypes.checkPropTypes()
手动检查原型。
我想从父组件进行道具的原型检查比从Redux进行道具检查更为重要,但我仍然想知道是否有人有好的解决方案。
同一个问题,队友,希望有人回答。祝你有美好的一天!
[当您在组件中调用connect()
时,您正在做的是创建HOC或高阶组件。您在其中调用connect()
时会“包装”该组件。然后,HOC将道具作为props
对象传递给包装的组件。
此对象的成员可以依次由prop-types
之类的类型检查类型。这里的问题是,使用钩子时,您不再需要包装所有组件。当函数运行时,您将在函数主体中获得状态。这意味着您使用的值不再是“ prop”。
不幸的是,没有方便的方法来自动对JavaScript中的值进行类型检查。可以添加TypeScript或Flow,但是可以在整个文件中进行every变量/函数返回的类型检查。也许这就是您想要的,但是却增加了很多开销。