You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React JS嵌套数组内容输出问题及标签历史功能实现咨询

实现标签内历史记录的前进后退功能

我正尝试扩展标签数组的功能,实现类似Chrome的前进后退按钮,让用户可以浏览标签内的历史记录。

tabArray示例

const [tabArray, setTabArray] = useState([
  {
    ContentList: [
      { TabText: 'Home', Content: <Home/>, Current: false },
      { TabText: 'Convert Temp', Content: <ConvertTemp/>, Current: true }
    ],
    Selected: true
  }
])

tabArray的结构为:每个对象包含ContentList数组(存储标签文本、显示内容、控制标签历史前进后退的Current布尔值),以及控制标签激活状态的Selected布尔值。

我最初遇到的问题是无法正确输出tabArray中的ContentList内容,控制台输出符合预期但返回值无法正常显示。

已解决的代码实现

标签栏文本显示代码(已解决)

<tr>
  {tabArray.map((v, index) => {
    return (
      v.ContentList
        .filter(list => list.Current)
        .map(list => 
          <td key={index} 
              className={v.Selected ? "selected" : "hide"} > 
            <div className="TabText" onClick={() => selectByIndex(index, setTabArray)}>{list.TabText}</div>
            <button className="CloseTab" onClick={() => deleteByIndex(index, setTabArray)} >x</button>
          </td>
        )
    )
  })}
</tr>

通过提升return层级解决了标签栏文本显示问题。

标签内容显示代码(已解决)

let tabContent = [
  tabArray.map((v, index) => {
    return(
      v.Selected ?
        v.ContentList
          .filter(list => list.Current)
          .map(list => 
            <div key={index}> {list.Content} </div>
          )
      :
        v.ContentList
          .filter(list => list.Current)
          .map(list => {
              return <div key={index} className='hidden'> {list.Content} </div>
          })
    )
  })
]

// console.log(tabContent)

return tabContent

通过提升return层级并修正大小写(current改为Current)解决了标签内容显示问题。

希望能获得更多技术帮助,若描述不够清晰我可以补充更多细节,提前感谢。

内容的提问来源于stack exchange,提问作者David P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 20:22:13