当前位置: 首页 > 面试题库 >

最小化代码,因为我使用的是相同的代码,只是p标记中的内容发生了变化,组件AccordionHeader标头发生了变化

於和志
2023-03-14
问题内容
  • 我是js新手。
  • 我需要显示6个滑块。当我单击每个div时,应打开其相应的内容。
  • 当我再次单击div时,内容应关闭。
  • 就像手风琴一样。
  • 正确地知道它可以工作,但是如何减少代码,因为我使用的是相同的代码,只是p标记中的内容发生了变化,组件AccordionHeader标头发生了变化。

相关代码

测试一个

    <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>
            );
        }
    }

所以在调用手风琴时,只需添加另一个参数

 <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")} />


 类似资料:
  • 问题 下面的代码显示,当影响一个数组到另一个数组时,这两个数组变得相互依赖。 我想知道为什么这与类型不同,因为如果我们有以下内容: 两个变量和引用的是同一个字符串,所以更改一个会影响另一个。

  • 问题内容: 输出始终为。 但是,绝对可以使循环多次遍历1s 。 我认为,在闭包是在FUNC。 请参见下面的代码。 在多行“ +1”之后,输出正好是预期的很大数目。 问题答案: 记忆模型 2014年5月31日版本 介绍 Go内存模型指定了一种条件,在这种条件下,可以保证在一个goroutine中读取变量可以观察到在不同goroutine中写入同一变量所产生的值。 忠告 修改由多个goroutine同

  • 我正在使用和来备份。在执行makefile时,tar命令显示。在这种情况下, < li >当警告出现时,tar包正常 < li >但它会停止tar命令以进行后续备份 < li >显示警告的文件实际上没有改变-出现警告真是奇怪 < li >显示警告的文件随机出现,我的意思是,每次我运行makefile时,显示警告的文件都是不同的 < Li > < code >-ignore-failed-read

  • 我需要取回一个在未来的onSuccess块中被改变的变量。这是我的示例代码。 返回为无,不会变为,或。那么这是否意味着onSuccess块中变量的值无法返回?然而,这似乎奏效了: 我可以在未来的onSuccess块中做什么,以便根据未来的结果是整数还是字符串,将< code>ret的值返回为< code>1或< code>2?在这种情况下,scala的作用域规则是什么?(我用的是akka)。感谢任

  • 我试图根据从API获得的用户数据显示一些卡片。但是这个错误一直显示:`警告:React检测到PlanCard调用的钩子顺序发生了变化。如果不修复,这将导致错误和错误。更多信息,请阅读钩子的规则 > 使用状态使用状态 使用状态使用状态 使用状态使用状态 使用效果使用效果 未定义的useContext ^^^^^^^^^^^^^^ ` 这是我所有的计划卡文件 这也是我的提取计划代码:

  • v-html渲染<p>标签时渲染的结构与传入的结构不一致 传入的字符串结构是: -p -a 但是渲染出来的结构却是混乱的,经测试去掉<p>标签后就正常了。 使用的是vue2,由于在做的是编辑器,所以不可避免地有<p>标签的情况,想问下这是什么原因导致的渲染异常