weixin_46370335 2021-09-17 03:34 采纳率: 100%
浏览 49
已结题

ant design的穿梭框 transfer 底部怎么设置两个不一样,怎么设置不同的页脚? 不同的怎么实现

img


ant design的穿梭框 transfer 底部怎么设置两个不一样,怎么设置不同的页脚? 不同的怎么实现

  • 写回答

1条回答 默认 最新

  • CSDN专家-showbo 2021-09-17 04:12
    关注

    示例有参考,

    有帮助或启发麻烦点个采纳【本回答右上角】,谢谢~~

    img

    1. import { Transfer, Button } from 'antd';
    2. class App extends React.Component {
    3. state = {
    4. mockData: [],
    5. targetKeys: [],
    6. };
    7. componentDidMount() {
    8. this.getMock();
    9. }
    10. getMock = () => {
    11. const targetKeys = [];
    12. const mockData = [];
    13. for (let i = 0; i < 20; i++) {
    14. const data = {
    15. key: i.toString(),
    16. title: `content${i + 1}`,
    17. description: `description of content${i + 1}`,
    18. chosen: Math.random() * 2 > 1,
    19. };
    20. if (data.chosen) {
    21. targetKeys.push(data.key);
    22. }
    23. mockData.push(data);
    24. }
    25. this.setState({ mockData, targetKeys });
    26. };
    27. handleChange = targetKeys => {
    28. this.setState({ targetKeys });
    29. };
    30. renderFooter = (props, { direction }) => {
    31. if (direction === 'left') {
    32. return (
    33. <Button size="small" style={{ float: 'left', margin: 5 }} onClick={this.getMock}>
    34. Left button reload
    35. </Button>
    36. );
    37. }
    38. return (
    39. <Button size="small" style={{ float: 'right', margin: 5 }} onClick={this.getMock}>
    40. Right button reload
    41. </Button>
    42. );
    43. };
    44. render() {
    45. return (
    46. <Transfer
    47. dataSource={this.state.mockData}
    48. showSearch
    49. listStyle={{
    50. width: 250,
    51. height: 300,
    52. }}
    53. operations={['to right', 'to left']}
    54. targetKeys={this.state.targetKeys}
    55. onChange={this.handleChange}
    56. render={item => `${item.title}-${item.description}`}
    57. footer={this.renderFooter}
    58. />
    59. );
    60. }
    61. }
    62. ReactDOM.render(<App />, mountNode);

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
    weixin_46370335 2021-09-17 06:04

    可是这是4.x版本的,3.X的解决办法有吗

    回复
    CSDN专家-showbo 回复 weixin_46370335 2021-09-17 06:41

    3xrenderFooter没有传入对应参数,可以自己定义一个变量,重写下renderfooter函数

    img

    1. index=0;////////
    2. renderFooter = () => {//renderFooter会被调用4次,第三次是左边按钮,第四次是右边的,改下面的测试后可以
    3. this.index++;
    4. return (
    5. <Button
    6. size="small"
    7. style={{ float: 'right', margin: 5 }}
    8. onClick={this.getMock}
    9. >
    10. reload{this.index==3?'左边':'右边'}
    11. </Button>
    12. );
    13. };

    1
    回复
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 9月24日
  • 已采纳回答 9月17日
  • 创建了问题 9月17日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部