1. 结构
0(根品类)
一级品类1
二级品类1001
二级品类1002
二级品类1003
二级品类1004
一级品类2
二级品类2001
二级品类2002
二级品类2003
二级品类2004
2. 逻辑
(1) 页面一加载就去获取一级品类
(2) 当你没有选择一级品类的时候,二级品类不可见(隐藏)
(3) 当你选择了一级品类,就去立马获取和显示这个一级品类对应的所有二级品类
(4) 当你只选择了一级品类,那么商品就挂在一级品类,选择一级品类后要清空原来的二级品类,再去获取你新选择的一级品类下面所有的二级品类, 最后把结果暴露出去, 就是把选择的一级品类Id传给父组件
(5) 如果你选择了二级品类,那么商品就挂在二级品类,然后把结果暴露出去(二级categoryId覆盖一级categoryId,最终只会传出一个结果)
(6) 它最后给我们提供的就是一个分类的Id
(7) 在编辑的时候我们需要对它进行数据回填
- 因为它单独封装成组件, 所以数据的回填只能在这个组件内部进行回填, 不能在父组件
- 所以父组件需要通过props把需要回填的数据传给他
- 一般是当我们进入编辑页面的时候需要数据回填, 数据要父组件通过异步接口去拿
- 子组件想要拿到父组件异步获取的数据, 不能通过this.props, 需要在生命周期函数
componentWillReceiveProps(nextProps)
来获取, 数据在nextProps里面 - 这里也分: 接受的只有一级品类,还是一级品类+二级品类
- 如果有二级品类, 回填二级品类后还要去加载二级品类列表