javascript - 更改数组的 div 结构

标签 javascript html css reactjs redux

我在数组中有一个 HTML 结构。但是,我不确定如何根据 if 条件更改每个 div 结构,现在我正在重新创建四个 div,但我只想更改一个 div。有没有更简单的方法,比如单独更改第一个 div 内容?这是一个相关部分如下。

  var firstDay = "dayOne"
  if(firstDay){

    this.state = {
        'panes' : [

            <div className="sports-tab-content">
                <p className="sports-large-text ft-day1 ft-day2">
                  day one First
                </p>
            </div>,

            <div className="sports-tab-content">
                <p className="sports-large-text ft-day1 ft-day2">
                  light 
                </p>
            </div>,

            <div className="sports-tab-content">
                <p className="sports-large-text ft-day1 ft-day2 ft-day3">
                    bulb
                </p>
            </div>,

            <div className="sports-tab-content">
                <p className="sports-large-text ft-day1 ft-day2 ft-day3 ft-day4">
                  sky
                </p>
            </div>
        ]

    }
  }

  else {

    this.state = {
        'panes' : [

            <div className="sports-tab-content">
                <p className="sports-large-text ft-day1 ft-day2">
                  day one inside else
                </p>
            </div>,

            <div className="sports-tab-content">
                <p className="sports-large-text ft-day1 ft-day2">
                  jump

                </p>
            </div>,

            <div className="sports-tab-content">
                <p className="sports-large-text ft-day1 ft-day2 ft-day3">
                    drive 
                </p>
            </div>,

            <div className="sports-tab-content">
                <p className="sports-large-text ft-day1 ft-day2 ft-day3 ft-day4">
                  brush
                </p>
            </div>
        ]

    }

最佳答案

感觉display和state之间的抽象有点奇怪。我想存储指示哪些组件或组件应如何在状态中呈现的属性将使您更容易完成您想要做的事情。

代替:

this.state = {
  panes : [
    <div className="sports-tab-content">
      <p className="sports-large-text ft-day1 ft-day2">
        day one inside else
      </p>
    </div>,
    <div className="sports-tab-content">
      <p className="sports-large-text ft-day1 ft-day2">
        day one First
      </p>
    </div>,
    <div className="sports-tab-content">
      <p className="sports-large-text ft-day1 ft-day2 ft-day3">
        day one First 
      </p>
    </div>,
    <div className="sports-tab-content">
      <p className="sports-large-text ft-day1 ft-day2 ft-day3 ft-day4">
        day one First 
      </p>
    </div>,
  ],
};

可能使用:

this.state = {
  panes : [{
    classes: ['ft-day1', 'ft-day2'],
    text: 'day one inside else',
  }, {
    classes: ['ft-day1', 'ft-day2'],
    text: 'day one First',
  }, {
    classes: ['ft-day1', 'ft-day2', 'ft-day3'],
    text: 'day one First',
  }, {
    classes: ['ft-day1', 'ft-day2', 'ft-day3', 'ft-day4'],
    text: 'day one First',
  }],
};

render() {
  return (
    <Tabs selected={0} changeContent={this.changeContent}>
      <Pane label="Account Setup" subtitle="Days 1 and 2" liClass="sports-setup-ico first-time-active ft-active-tab">
        <PaneContent {...this.state.panes[0]} />
      </Pane>
      <Pane label="Investments Purchase" subtitle="Approx. Day 3" liClass="sports-invest-ico">
        <PaneContent {...this.state.panes[1]} />  
      </Pane>
      <Pane label="Balance and Portfolio" subtitle="Approx. Day 4" liClass="sports-balance-ico">
        <PaneContent {...this.state.panes[2]} />                  
      </Pane>
      <Pane label="IPerformance" subtitle="Approx. Day 5" liClass="sports-perf-ico">
        <PaneContent {...this.state.panes[3]} />
      </Pane>
    </Tabs>
  );
}

PanelContent 组件是:

const PanelContent = (props) => (
  <div className="sports-tab-content">
    <p className={`sports-large-text ${props.classes.join(' ')}`}>
      {props.text}
    </p>
  </div>
);

关于javascript - 更改数组的 div 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40623176/

相关文章:

javascript - 输入类型 ="file"拍照选项

javascript - 我该怎么做 jQuery 不适用于特定元素?

javascript - 不守规矩的数组不留在包含 div

jQuery fancyBox 关闭图标在 IE8 中裁剪

css - 清除 float 后,下一个div中的文本被推到左边

javascript - 如何选择包含特定单词的 postgreSQL 行

javascript - 在图层组中放置多个标记

网站的 HTML 布局无法正确显示

html - CSS 按钮边框由于某种原因无法正常工作

javascript - 查找一组数组中的最小和最大时间