javascript - 使用 React.js 和语义 UI React 呈现动态选项卡

标签 javascript reactjs semantic-ui-react

使用 React.jsSemantic UI React 我想动态创建标签。

当使用表示选项卡对象数组的 const 时,这工作正常。

const panes = [
            {
                menuItem: 'Record 1',
                render: () => <Tab.Pane>Tab 1 Content</Tab.Pane>
            }
        ]
...
<Tab panes={panes}/>

但是,我需要根据状态变量动态添加这些 source:

getPanes() {
        return this
            .state
            .source
            .map((source) => [{
                menuItem: source.sourceName,
                render: () => <Tab.Pane>Tab 1 Content</Tab.Pane>
            }])
    }
...
<Tab panes={this.getPanes}/>

这导致:

Warning: Failed prop type: Invalid prop `panes` of type `function` supplied to `Tab`, expected an array.

最佳答案

两个问题:

  1. this.getPanes 引用您的函数定义,它不会调用 你的功能。你想要你的功能的结果,你应该 应该使用括号调用它:this.getPanes()
  2. > .map()返回一个新的元素数组,该数组是将您提供的函数应用于每个原始元素的结果。您真正想要在 .map 中返回的是您的 Pane 对象,而不是一个 Pane 对象的数组:

--

.map((source) => ({ 
  menuItem: source.sourceName, 
  render: () => <Tab.Pane>Tab 1 Content</Tab.Pane> 
}))

关于javascript - 使用 React.js 和语义 UI React 呈现动态选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50473195/

相关文章:

javascript - 每次状态改变时如何在 ReactJS 中重做 API 调用?

javascript - 语义 UI React 弹出窗口淡入/淡出

javascript - node.js 脚本可以在命令行下运行,但不能在浏览器上运行?

javascript - this.props.filterUser 不是一个函数

javascript - 暂时禁用 react-loadable

reactjs - 如何在 React 语义 UI 中从 <Input/> 获取输入

reactjs - 使用Semantic UI React,如何设置图像头像的宽度和高度?

javascript - 仅字符的正则表达式

Javascript-火狐 : how to set custom cursor from local png file?

javascript - 使用 ng-repeat angularjs 在表中应用 rowspan