gpt4 book ai didi

javascript - 最小化代码,因为我使用相同的代码,仅 p 标签中的内容发生变化,组件 AccordionHeader header 发生变化

转载 作者:行者123 更新时间:2023-11-28 04:43:15 25 4
gpt4 key购买 nike

  • 我是 js 新手。
  • 我需要显示 6 个 slider 。当我单击时,每个 div 都应该打开其相应的内容。
  • 当我再次单击该 div 时,内容应该关闭。
  • 就像 Accordion 一样。
  • 知道它可以工作,但如何最小化代码,因为我使用相同的代码,仅 p 标签中的内容发生变化,组件 AccordionHeader header 发生变化。

相关代码

测试一

<AccordionHeader className="jump-player-question-title jump-submenu-dropmenuHeader"
header="ball ball ball ball sjsdsdkjjksddjks?" content={PLAYER.accordionFourth(ballInfo)}

/>

  • 在下面提供我的代码
import React, {PropTypes, Component} from 'react';
import {connect} from 'react-redux';
import {provideModalFunctions} from 'kick-modal';
import AccordionHeader from './player-expandable-contextual-item';


export class PLAYER extends Component {

static accordion(ballInfo) {
if (ballInfo.isRetrieving) {
return (
<LoadingIndicator key="foulLoading" />
);
} else if (ballInfo.error) {
return (
<span className="right-align negative">Unavailable</span>
);
} else {
return (

<div className="jump-player-question-answer jump-submenu-dropmenuContents">
<p>
Testing one
</p>
</div>

);
}
}

static accordionSecond(ballInfo) {
if (ballInfo.isRetrieving) {
return (
<LoadingIndicator key="foulLoading" />
);
} else if (ballInfo.error) {
return (
<span className="right-align negative">Unavailable</span>
);
} else {
return (

<div className="jump-player-question-answer jump-submenu-dropmenuContents">
<p>
Testing two
</p>
</div>

);
}
}


static accordionThird(ballInfo) {
if (ballInfo.isRetrieving) {
return (
<LoadingIndicator key="foulLoading" />
);
} else if (ballInfo.error) {
return (
<span className="right-align negative">Unavailable</span>
);
} else {
return (

<div className="jump-player-question-answer jump-submenu-dropmenuContents">
<p>
Testing Three
</p>
</div>

);
}
}




static accordionFourth(ballInfo) {
if (ballInfo.isRetrieving) {
return (
<LoadingIndicator key="foulLoading" />
);
} else if (ballInfo.error) {
return (
<span className="right-align negative">Unavailable</span>
);
} else {
return (

<div className="jump-player-question-answer jump-submenu-dropmenuContents">
<p>
Testing four
</p>
</div>

);
}
}

static accordionFifth(ballInfo) {
if (ballInfo.isRetrieving) {
return (
<LoadingIndicator key="foulLoading" />
);
} else if (ballInfo.error) {
return (
<span className="right-align negative">Unavailable</span>
);
} else {
return (

<div className="jump-player-question-answer jump-submenu-dropmenuContents">
<p>
Testing five
</p>
</div>

);
}
}


static accordionSixth(ballInfo) {
if (ballInfo.isRetrieving) {
return (
<LoadingIndicator key="foulLoading" />
);
} else if (ballInfo.error) {
return (
<span className="right-align negative">Unavailable</span>
);
} else {
return (

<div className="jump-player-question-answer jump-submenu-dropmenuContents">
<p>
Testing Six
</p>
</div>

);
}
}




render() {
const {ballInfo} = this.props;

return (

<div className ="testing">

<h2 className="jump-h2 jump-playerTitle">Fees &amp; Balances</h2>

<div className="jump-playerContainer">

<AccordionHeader className="jump-player-question-title jump-submenu-dropmenuHeader"
header="ball" content={PLAYER.accordion(ballInfo)}
/>

<AccordionHeader className="jump-player-question-title jump-submenu-dropmenuHeader"
header="Iball ball" content={PLAYER.accordionSecond(ballInfo)}
/>

<AccordionHeader className="jump-player-question-title jump-submenu-dropmenuHeader"
header="ball ball ball 3" content={PLAYER.accordionThird(ballInfo)}
/>

</div>

<h2 className="jump-h2 jump-playerTitle">Account Actions</h2>

<div className="jump-playerContainer">

<AccordionHeader className="jump-player-question-title jump-submenu-dropmenuHeader"
header="ball ball ball ball sjsdsdkjjksddjks?" content={PLAYER.accordionFourth(ballInfo)}
/>

<AccordionHeader className="jump-player-question-title jump-submenu-dropmenuHeader"
header="dsknjdsncjdnsjkcsdnjcsdncjkdsn" content={PLAYER.accordionFifth(ballInfo)}
/>

<AccordionHeader className="jump-player-question-title jump-submenu-dropmenuHeader"
header="heuwsdjclkdsjclksjcdjeljlj" content={PLAYER.accordionSixth(ballInfo)}
/>

</div>

</div>

);
}

}


PLAYER.propTypes = {
ballInfo: PropTypes.shape({
foulLine1: PropTypes.string,
foulLine2: PropTypes.string,
foulLine3: PropTypes.string,
isRetrieving: PropTypes.bool,
error: PropTypes.object
}).isRequired,
close: PropTypes.func,
goalDetails: PropTypes.object.isRequired
};

const select = (state) => {
return {
ballInfo: state.ball,
goalDetails: state.goalDetails
};
};


export default provideModalFunctions(connect(select)(PLAYER));

最佳答案

尝试仅使用一个静态并将 p 标记上的文本作为参数传递,这样您就不会在那里有很多函数

     static accordion(ballInfo, content) {
if (ballInfo.isRetrieving) {
return (
<LoadingIndicator key="foulLoading" />
);
} else if (ballInfo.error) {
return (
<span className="right-align negative">Unavailable</span>
);
} else {
return (
<div className="jump-player-question-answer jump-submenu-dropmenuContents">
<p>
{{content}}
</p>
</div>
);
}
}

因此,在调用 Accordion 时,只需添加其他参数

 <AccordionHeader className="jump-player-question-title jump-submenu-dropmenuHeader" header="ball ball ball ball sjsdsdkjjksddjks?" content={PLAYER.accordion(ballInfo, "qwe")} />

<AccordionHeader className="jump-player-question-title jump-submenu-dropmenuHeader" header="dsknjdsncjdnsjkcsdnjcsdncjkdsn" content={PLAYER.accordion(ballInfo, "asd")} />

关于javascript - 最小化代码,因为我使用相同的代码,仅 p 标签中的内容发生变化,组件 AccordionHeader header 发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43600110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com