【发布时间】:2024-05-19 06:40:01
【问题描述】:
我想知道在将使用第 3 方 HOC 包装的组件上定义 propTypes 的最佳做法是什么,在这种情况下,withRouter() 来自 React-Router。
据我了解,propTypes 的目的是让您(和其他开发人员)知道组件应该期望什么 props,如果违反,React 会发出警告。
所以,既然关于位置的props已经被withRouter()传递了,没有人为干预,这里有必要担心吗?
这是我正在使用的组件:
const Menu = ({ userId, ...routerProps}) => {
const { pathname } = routerProps.location
return (
// Something using userID
// Something using pathname
)
}
Menu.propTypes = {
userId: PropTypes.number.isRequired,
// routerProps: PropTypes.object.isRequired,
// ^ this is undefined, bc withRouter passes it in later?
}
export default withRouter(Menu)
//.... in parent:
<Menu userId={id} />
这种情况下的约定是什么?
【问题讨论】:
标签: javascript reactjs react-router higher-order-components