自定义页面控制折叠面板折叠展示
1. 使用场景
本例介绍一下在宜搭自定义页面中如何控制折叠面板折叠展示。
2. 实现功能
2.1 创建自定义页面
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1677636196970-4114073f-639e-427c-b67c-3bd3ce636ce2.png)
2.2 配置折叠面板
(1)开启受限组件选项
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1677636284082-8c91b503-716e-4363-883d-2223e4b5c089.png)
(2)添加变量并绑定
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1677636321219-0a9c9fed-024a-474d-a757-e1a35fcada5b.png)
(3)绑定事件
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1677636372234-f47179ba-591c-4710-8b8d-2c54f871c70b.png)
export function onExpand(expandedKeys){
console.log(expandedKeys);
this.setState({
expandedKeys,
});
}
2.3 配置功能
expandedKeys 参数中包含展开的折叠面板的 key,自上而下从 0 开始。第一项:0,第二项:1,第三项:2 ...
(1)全部展开
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1677636477613-bb279274-ec72-47d8-a844-7c82e2c5cd68.png)
export function onExpandAll(){
this.setState({
expandedKeys: ["0", "1", "2"],
});
}
(2)全部收起
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1677636638410-fa96ddb2-9e86-4c1c-b468-d2890cf60714.png)
export function onShrinkAll(){
this.setState({
expandedKeys: [],
});
}
(3)展开 / 收起指定项
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1677638195974-a9952520-5aaa-4d14-bf6e-675d0ca0d94a.png)
// 展开 / 收起指定项,key:展开 / 收起的项,type:expand(展开) shrink(收起)
export function onDesign(key, type) {
if (!type || !key) { return };
const { expandedKeys } = this.state;
const index = expandedKeys.indexOf(key);
if (index === -1 && type === 'expand') {
// 展开
expandedKeys.splice(1, 0, key);
} else {
// 收起
expandedKeys.splice(index, 1);
}
this.setState({
expandedKeys,
});
}
// 展开第二个
export function onExpandSecond() {
this.onDesign('1', 'expand');
}
// 收起第二个
export function onShrinkSecond() {
this.onDesign('1', 'shrink');
}
3. 实现效果
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1677638224354-75ecd2ec-55f0-431c-99e6-72bac8c10b3a.png)
4. 在线试玩
本文档对您是否有帮助?