记录有关antd
的坑
更新
[2019-7-21]
- Initial release
[2019-7-22]
Added
- 新增问题
Type '"primary"' is not assignable to type 'undefined'.
&&Types of property 'type' are incompatible.
[2019-7-24]
Added
- 新增问题
Tabs、Collapse等组件的'defaultActiveKey'与路由'pathname
不匹配.`
[2019-7-28]
Added
- 新增问题
路由跳转, 不重新刷新页面的情况下, antd的TabPane无法与pathname同步
.
记录
1. 父组件处理子组件的表单数据
解决:
展开代码
1 | export default withRouter(Form.create({ |
2. Types of property ‘type’ are incompatible && Type ‘“primary”‘ is not assignable to type ‘undefined.
相关依赖:
- @types/antd@1.0.0
- @types/react@16.8.23
- @types/react-dom@16.8.4
问题原因:
antd
的类型包与最新的react
不兼容
解决方法:
看到了antd
的issue
:
https://github.com/ant-design/ant-design/issues/15700#issuecomment-477333557
只需要升级@types/react
类型包到16.8.8
版本即可.
3. Tabs、Collapse等组件的'defaultActiveKey'与路由'pathname
不匹配.
相关依赖:
问题原因:
defaultActiveKey
默认指向当前的第一个tab-pane
, 但是我的需求是tab-pane
要与路由pathname
对应, 这也就导致, 当我在另外一个路由刷新时, defaultActiveKey
一直指向第一个.
解决办法:
只需做个简单的处理即可
展开代码
1 | function handleTabsDefaultActiveKey() { |
然后直接使用
展开代码
1 | <Tab defaultActiveKey={handleTabsDefaultActiveKey()}> |
4. 路由跳转, 不重新刷新页面的情况下, antd的TabPane无法与pathname同步
相关依赖:
问题原因:
与上述第三
个问题类似, 不同的是, 这次的需求是, 需要在另外一个tabPane
来切换到另一个tabPane
的路由, 但是出现的情况是url
变了, 但是antd
的tabs
却没有跳转到对应的tabpane
, 很蛋疼.
解决办法:
很简单, 只需要模拟点击tabpane
就行了, 可以用MouseEvent
自定义click
事件, 通过dom
触发. 我将其封装成了工具方法:
展开代码
1 | /** |