reactjs - 强类型对象属性依赖于其他对象属性
问题描述
我正在尝试强类型化 React Context 对象,并且我希望其中一个属性依赖于另一个。例如,我正在制作一个 ModalContext,并且我正在使用与 Redux 操作类似的模式,其中有一个类型和有效负载,但我将它们称为modalType
and modalData
,以便我可以通过上下文将数据传递给模态。所以,这里有一些例子......
如果modalType = 'LOGIN MODAL'
,则不传递任何数据,仅以模式显示登录表单。
如果modalType = 'RENT MOVIE'
,那么modalData = {movieId: 123456}
模态框知道要播放哪部电影。
在站点管理上下文中,如果modalType = 'RESET USER PASSWORD'
, 那么modalData = {userId: 456789}
模态可以显示该用户。
这是我的上下文界面。
interface IModalContext {
visible: boolean;
modalType:''|'LOGIN MODAL'|'RENT MOVIE'|'EDIT USER';
modalData: any;
}
我到底如何modalData
依赖 的值modalType
?
解决方案
为此,您将需要使用联合:
type IModalContext =
| {
visible: boolean;
modalType: 'LOGIN MODAL',
}
| {
visible: boolean;
modalType: 'RENT MOVIE',
modalData: { movieId: number }
}
| ...
推荐阅读
- excel - 如何禁用输入框中的多行/列选择?
- c++ - 性能图示例
- python - 为 Python 应用程序开发图形界面
- javascript - 有没有办法在已经存在的构造函数中拥有一个构造函数?
- r - 如何从下面的 for 循环中创建一个函数
- ios - 你如何为组合 UICollectionViewLayouts 制作 NSCollectionLayoutVisibleItem 动画?
- python - Pyinstaller 问题,当我尝试制作 exe 文件时
- sql-server - 更新查询需要更多时间
- c++ - 在函数范围之外持久化变量
- google-apps-script - Google Apps 脚本客户端到服务器