我正在学习反应。对于CSS我使用语义 - 反应。我正在尝试使用文档创建一个标签:https://react.semantic-ui.com/modules/tab
。我理解它现在如何工作我想根据用户要求生成动态标签。假设我有一个像这样的对象:
[{name: "10jan", key: "10jan"},
{name: "12jan", key: "12jan"},
{name: "14jan", key: "14jan"}]
我想基于此生成动态标签。我的代码就是这个
const panes = [
{ dates.map((date) => (
return (
menuItem:{date.name},
render(){
<div>Test</div>
}
)
) }
]
我做错了什么?
答案 0 :(得分:3)
根据文档,您可以执行以下操作。请参阅demo:
import 'semantic-ui-css/semantic.min.css';
import React, { Component } from 'react';
import { render } from 'react-dom';
import { Tab } from 'semantic-ui-react';
const data = [
{ name: "10jan", key: "10jan" },
{ name: "12jan", key: "12jan" },
{ name: "14jan", key: "14jan" },
];
const panes = data.map(d => ({
menuItem: d.name,
render: () => <Tab.Pane> { d.key }</Tab.Pane>
}));
const App = () => (
<div>
<Tab panes={ panes } />
</div>
);
答案 1 :(得分:2)
state = {
dataArray:[{name: "10jan", key: "10jan"},
{name: "12jan", key: "12jan"},
{name: "14jan", key: "14jan"}]
}
renderItems() {
const {dataArray} = this.state
return dataArray.map((item,i) => <div key={i}>{item.name}</div>)
}
render() {
return (
<div>
{this.renderItems()}
</div>
)
}
我们不会一次又一次地使用渲染方法。 这是一种可以渲染动态视图的方法